58var
OpenLayers = {VERSION_NUMBER:
"Release 2.13.1", singleFile:!0, _getScriptLocation:
function(){
for (var
a = /(^|(.*?\/))(
OpenLayers[^\/]*?\.js)(\?|
$)/,
b =
document.getElementsByTagName(
"script"),
c,
d =
"",
e = 0,
f =
b.length;
e <
f;
e++)
if (
c =
b[
e].getAttribute(
"src"))
if (
c =
c.match(
a)){
d =
c[1];
break}
return function(){
return d}}(), ImgPath:
"http://openlayers.org/api/img/"};
OpenLayers.Class =
function(){var
a = arguments.length,
b = arguments[0],
c = arguments[
a - 1],
d =
"function" == typeof
c.initialize?
c.initialize:
function(){
b.prototype.initialize.apply(
this, arguments)}; 1 <
a?(
a = [
d,
b].concat(
Array.prototype.slice.call(arguments).slice(1,
a - 1),
c),
OpenLayers.inherit.apply(
null,
a)):
d.
prototype =
c;
return d};
59 OpenLayers.inherit =
function(
a,
b){var
c =
function(){};
c.prototype =
b.prototype;
a.prototype =
new c; var
d,
e,
c = 2;
for (
d = arguments.length;
c <
d;
c++)
e = arguments[
c],
"function" === typeof
e && (
e =
e.prototype),
OpenLayers.Util.extend(
a.prototype,
e)};
OpenLayers.Util =
OpenLayers.Util || {};
OpenLayers.Util.extend =
function(
a,
b){
a =
a || {};
if (
b){
for (var
c in
b){var
d =
b[
c];
void 0 !==
d && (
a[
c] =
d)}
"function" == typeof window.Event &&
b instanceof window.Event || (!
b.hasOwnProperty || !
b.hasOwnProperty(
"toString")) || (
a.toString =
b.toString)}
return a};
OpenLayers.String = {startsWith:
function(
a,
b){
return 0 ==
a.indexOf(
b)}, contains:
function(
a,
b){
return - 1 !=
a.indexOf(
b)}, trim:
function(
a){
return a.replace(/^\
s\
s*/,
"").replace(/\
s\
s*
$/,
"")}, camelize:
function(
a){
a =
a.split(
"-");
for (var
b =
a[0],
c = 1,
d =
a.length;
c <
d;
c++)var
e =
a[
c],
b =
b + (
e.charAt(0).toUpperCase() +
e.substring(1));
return b}, format:
function(
a,
b,
c){
b || (
b = window);
return a.replace(
OpenLayers.String.tokenRegEx,
function(
a,
e){for (var f, g = e.split(/\.+/), h = 0; h < g.length; h++){0 == h && (f = b); if (void 0 === f)break;
60 f = f[g[h]]}
"function" == typeof
f && (
f =
c?
f.apply(
null,
c):
f());
return"undefined" == typeof
f?
"undefined":
f})}, tokenRegEx:/\
$\{([\
w.]+?)\}/
g, numberRegEx:/^([+-]?)(?=\
d|\.\
d)\
d*(\.\
d*)?([
Ee]([+-]?\
d+))?
$/, isNumeric:
function(
a){
return OpenLayers.String.numberRegEx.test(
a)}, numericIf:
function(
a,
b){var
c =
a; !0 ===
b && (
null !=
a &&
a.replace) && (
a =
a.replace(/^\
s*|\
s*
$/
g,
""));
return OpenLayers.String.isNumeric(
a)?parseFloat(
a):
c}};
61 OpenLayers.Number = {decimalSeparator:
".", thousandsSeparator:
",", limitSigDigs:
function(
a,
b){var
c = 0; 0 <
b && (
c = parseFloat(
a.toPrecision(
b)));
return c}, format:
function(
a,
b,
c,
d){
b =
"undefined" != typeof
b?
b:0;
c =
"undefined" != typeof
c?
c:
OpenLayers.Number.thousandsSeparator;
d =
"undefined" != typeof
d?
d:
OpenLayers.Number.decimalSeparator;
null !=
b && (
a = parseFloat(
a.toFixed(
b))); var
e =
a.toString().split(
"."); 1 ==
e.length &&
null ==
b && (
b = 0);
a =
e[0];
if (
c)
for (var
f = /(-?[0-9]+)([0-9]{3})/;
f.test(
a); )
a =
a.replace(
f,
"$1" +
c +
"$2");
62 0 ==
b?
b =
a:(
c = 1 <
e.length?
e[1]:
"0",
null !=
b && (
c +=
Array(
b -
c.length + 1).join(
"0")),
b =
a +
d +
c);
return b}, zeroPad:
function(
a,
b,
c){
for (
a =
a.toString(
c || 10);
a.length <
b; )
a =
"0" +
a;
return a}};
63 OpenLayers.Function = {
bind:
function(
a,
b){var
c =
Array.prototype.slice.apply(arguments, [2]);
return function(){var
d =
c.concat(
Array.prototype.slice.apply(arguments, [0]));
return a.apply(
b,
d)}}, bindAsEventListener:
function(
a,
b){
return function(
c){
return a.call(
b,
c || window.event)}}, False:
function(){
return!1}, True:
function(){
return!0}, Void:
function(){}};
64 OpenLayers.Array = {filter:
function(
a,
b,
c){var
d = [];
if (
Array.prototype.filter)
d =
a.filter(
b,
c);
else{var
e =
a.length;
if (
"function" != typeof
b)
throw new TypeError;
for (var
f = 0;
f <
e;
f++)
if (
f in
a){var
g =
a[
f];
b.call(
c,
g,
f,
a) &&
d.push(
g)}}
return d}};
OpenLayers.Bounds =
OpenLayers.Class({left:
null, bottom:
null, right:
null, top:
null, centerLonLat:
null, initialize:
function(
a,
b,
c,
d){
OpenLayers.Util.isArray(
a) && (
d =
a[3],
c =
a[2],
b =
a[1],
a =
a[0]);
null !=
a && (this.left =
OpenLayers.Util.toFloat(
a));
null !=
b && (this.bottom =
OpenLayers.Util.toFloat(
b));
null !=
c && (this.right =
OpenLayers.Util.toFloat(
c));
null !=
d && (this.top =
OpenLayers.Util.toFloat(
d))},
clone:
function(){
return new OpenLayers.Bounds(this.left, this.bottom, this.right, this.top)}, equals:
function(
a){var
b = !1;
null !=
65 a && (
b = this.left ==
a.left && this.right ==
a.right && this.top ==
a.top && this.bottom ==
a.bottom);
return b}, toString:
function(){
return[this.left, this.bottom, this.right, this.top].join()}, toArray:
function(
a){
return!0 ===
a?[this.bottom, this.left, this.top, this.right]:[this.left, this.bottom, this.right, this.top]}, toBBOX:
function(
a,
b){
null ==
a && (
a = 6); var
c =
Math.pow(10,
a),
d =
Math.round(this.left *
c) /
c,
e =
Math.round(this.bottom *
c) /
c,
f =
Math.round(this.right *
c) /
c,
c =
Math.round(this.top *
c) /
c;
return!0 ===
b?
e +
"," +
d +
"," +
c +
"," +
f:
d +
66 "," +
e +
"," +
f +
"," +
c}, toGeometry:
function(){
return new OpenLayers.Geometry.Polygon([
new OpenLayers.Geometry.LinearRing([
new OpenLayers.Geometry.Point(
this.left,
this.bottom),
new OpenLayers.Geometry.Point(
this.right,
this.bottom),
new OpenLayers.Geometry.Point(
this.right,
this.top),
new OpenLayers.Geometry.Point(
this.left,
this.top)])])}, getWidth:
function(){
return this.right - this.left}, getHeight:
function(){
return this.top - this.bottom}, getSize:
function(){
return new OpenLayers.Size(this.getWidth(), this.getHeight())},
67 getCenterPixel:
function(){
return new OpenLayers.Pixel((this.left + this.right) / 2, (this.bottom + this.top) / 2)}, getCenterLonLat:
function(){this.centerLonLat || (this.centerLonLat =
new OpenLayers.LonLat((this.left + this.right) / 2, (this.bottom + this.top) / 2));
return this.centerLonLat}, scale:
function(
a,
b){
null ==
b && (
b = this.getCenterLonLat()); var
c,
d;
"OpenLayers.LonLat" ==
b.CLASS_NAME?(
c =
b.lon,
d =
b.lat):(
c =
b.
x,
d =
b.
y);
return new OpenLayers.Bounds((this.left -
c) *
a +
c, (this.bottom -
d) *
a +
d, (this.right -
c) *
a +
c, (this.top -
d) *
a +
68 d)},
add:
function(
a,
b){
if (
null ==
a ||
null ==
b)
throw new TypeError(
"Bounds.add cannot receive null values");
return new OpenLayers.Bounds(this.left +
a, this.bottom +
b, this.right +
a, this.top +
b)},
extend:
function(
a){
if (
a)
switch (
a.CLASS_NAME){
case "OpenLayers.LonLat":this.extendXY(
a.lon,
a.lat);
break;
case "OpenLayers.Geometry.Point":this.extendXY(
a.x,
a.y);
break;
case "OpenLayers.Bounds":this.centerLonLat =
null;
if (
null == this.left ||
a.left <
this.left)this.left =
a.left;
if (
null == this.bottom ||
a.bottom <
this.bottom)this.bottom =
69 a.bottom;
if (
null == this.right ||
a.right >
this.right)this.right =
a.right;
if (
null == this.top ||
a.top >
this.top)this.top =
a.top}}, extendXY:
function(
a,
b){this.centerLonLat =
null;
if (
null == this.left ||
a < this.left)this.left =
a;
if (
null == this.bottom ||
b < this.bottom)this.bottom =
b;
if (
null == this.right ||
a > this.right)this.right =
a;
if (
null == this.top ||
b > this.top)this.top =
b}, containsLonLat:
function(
a,
b){
"boolean" === typeof
b && (
b = {inclusive:
b});
b =
b || {}; var
c = this.contains(
a.lon,
a.lat,
b.inclusive),
d =
b.worldBounds;
d && !
c && (
c =
d.getWidth(),
70 d =
Math.round((
a.lon - (
d.left +
d.right) / 2) /
c),
c =
this.containsLonLat({lon:a.lon - d * c, lat:a.lat}, {inclusive:b.inclusive}));
return c}, containsPixel:
function(
a,
b){
return this.contains(
a.x,
a.y,
b)}, contains:
function(
a,
b,
c){
null ==
c && (
c = !0);
if (
null ==
a ||
null ==
b)
return!1;
a =
OpenLayers.Util.toFloat(
a);
b =
OpenLayers.Util.toFloat(
b); var
d = !1;
return d =
c?
a >= this.left &&
a <= this.right &&
b >= this.bottom &&
b <= this.top:
a > this.left &&
a < this.right &&
b > this.bottom &&
b < this.top}, intersectsBounds:
function(
a,
b){
"boolean" === typeof
b && (
b =
71{inclusive:
b});
b =
b || {};
if (
b.worldBounds){var
c = this.wrapDateLine(
b.worldBounds);
a =
a.wrapDateLine(
b.worldBounds)}
else c =
this;
null ==
b.inclusive && (
b.inclusive = !0); var
d = !1,
e =
c.left ==
a.right ||
c.right ==
a.left ||
c.top ==
a.bottom ||
c.bottom ==
a.top;
if (
b.inclusive || !
e)var
d =
a.top >=
c.bottom &&
a.top <=
c.top ||
c.top >
a.bottom &&
c.top <
a.top,
e =
a.left >=
c.left &&
a.left <=
c.right ||
c.left >=
a.left &&
c.left <=
a.right,
f =
a.right >=
c.left &&
a.right <=
c.right ||
c.right >=
a.left &&
c.right <=
a.right,
d = (
a.bottom >=
c.bottom &&
a.bottom <=
c.top ||
c.bottom >=
72 a.bottom &&
c.bottom <=
a.top ||
d) && (
e ||
f);
if (
b.worldBounds && !
d){var
g =
b.worldBounds,
e =
g.getWidth(),
f = !
g.containsBounds(
c),
g = !
g.containsBounds(
a);
f && !
g?(
a =
a.add( -
e, 0),
d =
c.intersectsBounds(
a, {inclusive:b.inclusive})):
g && !
f && (
c =
c.
add( -
e, 0),
d =
a.intersectsBounds(
c, {inclusive:
b.inclusive}))}
return d}, containsBounds:
function(
a,
b,
c){
null ==
b && (
b = !1);
null ==
c && (
c = !0); var
d = this.contains(
a.left,
a.bottom,
c),
e = this.contains(
a.right,
a.bottom,
c),
f = this.contains(
a.left,
a.top,
c);
a = this.contains(
a.right,
a.top,
c);
return b?
73 d ||
e ||
f ||
a:
d &&
e &&
f &&
a}, determineQuadrant:
function(
a){var
b =
"",
c = this.getCenterLonLat(),
b =
b + (
a.lat <
c.lat?
"b":
"t");
return b +=
a.lon <
c.lon?
"l":
"r"},
transform:
function(
a,
b){this.centerLonLat =
null; var
c =
OpenLayers.Projection.transform({
x:this.left,
y:this.bottom},
a,
b),
d =
OpenLayers.Projection.transform({x:this.right, y:this.bottom},
a,
b),
e =
OpenLayers.Projection.transform({
x:this.left,
y:this.top},
a,
b),
f =
OpenLayers.Projection.transform({x:this.right, y:this.top},
a,
b); this.left =
Math.min(
c.x,
e.x); this.bottom =
Math.min(
c.y,
74 d.y); this.right =
Math.max(
d.x,
f.x); this.top =
Math.max(
e.y,
f.y);
return this}, wrapDateLine:
function(
a,
b){
b =
b || {}; var
c =
b.leftTolerance || 0,
d =
b.rightTolerance || 0,
e = this.
clone();
if (a){
for (var
f =
a.getWidth();
e.left <
a.left &&
e.right -
d <=
a.left; )
e =
e.add(
f, 0);
for (;
e.left +
c >=
a.right &&
e.right >
a.right; )
e =
e.add( -
f, 0);
c =
e.left +
c;
c <
a.right && (
c >
a.left &&
e.right -
d >
a.right) && (
e =
e.add( -
f, 0))}
return e}, CLASS_NAME:
"OpenLayers.Bounds"});
75 OpenLayers.Bounds.fromString =
function(
a,
b){var
c =
a.split(
",");
return OpenLayers.Bounds.fromArray(
c,
b)};
OpenLayers.Bounds.fromArray =
function(
a,
b){
return!0 ===
b?
new OpenLayers.Bounds(
a[1],
a[0],
a[3],
a[2]):
new OpenLayers.Bounds(
a[0],
a[1],
a[2],
a[3])};
OpenLayers.Bounds.fromSize =
function(
a){
return new OpenLayers.Bounds(0,
a.h,
a.w, 0)};
OpenLayers.Bounds.oppositeQuadrant =
function(
a){var
b;
b =
"" + (
"t" ==
a.charAt(0)?
"b":
"t");
return b +=
"l" ==
a.charAt(1)?
"r":
"l"};
OpenLayers.Element = {visible:
function(
a){
return"none" !=
OpenLayers.Util.getElement(
a).style.display}, toggle:
function(){
for (var
a = 0,
b = arguments.length;
a <
b;
a++){var
c =
OpenLayers.Util.getElement(arguments[
a]),
d =
OpenLayers.Element.visible(
c)?
"none":
"";
c.style.display =
d}},
remove:
function(
a){
a =
OpenLayers.Util.getElement(
a);
a.parentNode.removeChild(
a)}, getHeight:
function(
a){
a =
OpenLayers.Util.getElement(
a);
return a.offsetHeight}, hasClass:
function(
a,
b){var
c =
a.className;
return!!
c && RegExp(
"(^|\\s)" +
b +
"(\\s|$)").test(
c)},
76 addClass:
function(
a,
b){
OpenLayers.Element.hasClass(
a,
b) || (
a.className += (
a.className?
" ":
"") +
b);
return a}, removeClass:
function(
a,
b){var
c =
a.className;
c && (
a.className =
OpenLayers.String.trim(
c.replace(RegExp(
"(^|\\s+)" +
b +
"(\\s+|$)"),
" ")));
return a}, toggleClass:
function(
a,
b){
OpenLayers.Element.hasClass(
a,
b)?
OpenLayers.Element.removeClass(
a,
b):
OpenLayers.Element.addClass(
a,
b);
return a}, getStyle:
function(
a,
b){
a =
OpenLayers.Util.getElement(
a); var
c =
null;
if (
a &&
a.style){
c =
a.style[
OpenLayers.String.camelize(
b)];
77 c || (
document.defaultView &&
document.defaultView.getComputedStyle?
c = (
c =
document.defaultView.getComputedStyle(
a,
null))?
c.getPropertyValue(
b):
null:
a.currentStyle && (
c =
a.currentStyle[
OpenLayers.String.camelize(
b)])); var
d = [
"left",
"top",
"right",
"bottom"]; window.opera && ( - 1 !=
OpenLayers.Util.indexOf(
d,
b) &&
"static" ==
OpenLayers.Element.getStyle(
a,
"position")) && (
c =
"auto")}
return"auto" ==
c?
null:
c}};
OpenLayers.LonLat =
OpenLayers.Class({lon:0, lat:0, initialize:
function(
a,
b){
OpenLayers.Util.isArray(
a) && (
b =
a[1],
a =
a[0]); this.lon =
OpenLayers.Util.toFloat(
a); this.lat =
OpenLayers.Util.toFloat(
b)}, toString:
function(){
return"lon=" + this.lon +
",lat=" + this.lat}, toShortString:
function(){
return this.lon +
", " + this.lat},
clone:
function(){
return new OpenLayers.LonLat(this.lon, this.lat)},
add:
function(
a,
b){
if (
null ==
a ||
null ==
b)
throw new TypeError(
"LonLat.add cannot receive null values");
return new OpenLayers.LonLat(this.lon +
78 OpenLayers.Util.toFloat(
a),
this.lat +
OpenLayers.Util.toFloat(
b))}, equals:
function(
a){var
b = !1;
null !=
a && (
b = this.lon ==
a.lon && this.lat ==
a.lat || isNaN(this.lon) && isNaN(this.lat) && isNaN(
a.lon) && isNaN(
a.lat));
return b},
transform:
function(
a,
b){var
c =
OpenLayers.Projection.transform({
x:this.lon,
y:this.lat},
a,
b); this.lon =
c.x; this.lat =
c.y;
return this}, wrapDateLine:
function(
a){var
b = this.
clone();
if (a){
for (;
b.lon <
a.left; )
b.lon +=
a.getWidth();
for (;
b.lon >
a.right; )
b.lon -=
a.getWidth()}
return b}, CLASS_NAME:
"OpenLayers.LonLat"});
79 OpenLayers.LonLat.fromString =
function(
a){
a =
a.split(
",");
return new OpenLayers.LonLat(
a[0],
a[1])};
OpenLayers.LonLat.fromArray =
function(
a){var
b =
OpenLayers.Util.isArray(
a);
return new OpenLayers.LonLat(
b &&
a[0],
b &&
a[1])};
OpenLayers.Pixel =
OpenLayers.Class({
x:0,
y:0, initialize:
function(
a,
b){this.
x = parseFloat(
a); this.
y = parseFloat(
b)}, toString:
function(){
return"x=" + this.
x +
",y=" + this.
y},
clone:
function(){
return new OpenLayers.Pixel(this.
x, this.
y)}, equals:
function(
a){var
b = !1;
null !=
a && (
b = this.
x ==
a.x && this.
y ==
a.y || isNaN(this.
x) && isNaN(this.
y) && isNaN(
a.x) && isNaN(
a.y));
return b}, distanceTo:
function(
a){
return Math.sqrt(
Math.pow(
this.x -
a.x, 2) +
Math.pow(
this.y -
a.y, 2))},
add:
function(
a,
b){
if (
null ==
a ||
null ==
b)
throw new TypeError(
"Pixel.add cannot receive null values");
80 return new OpenLayers.Pixel(this.
x +
a, this.
y +
b)}, offset:
function(
a){var
b = this.
clone(); a && (
b = this.
add(a.x,
a.y));
return b}, CLASS_NAME:
"OpenLayers.Pixel"});
OpenLayers.Size =
OpenLayers.Class({
w:0,
h:0, initialize:
function(
a,
b){this.
w = parseFloat(
a); this.
h = parseFloat(
b)}, toString:
function(){
return"w=" + this.
w +
",h=" + this.
h},
clone:
function(){
return new OpenLayers.Size(this.
w, this.
h)}, equals:
function(
a){var
b = !1;
null !=
a && (
b = this.
w ==
a.w && this.
h ==
a.h || isNaN(this.
w) && isNaN(this.
h) && isNaN(
a.w) && isNaN(
a.h));
return b}, CLASS_NAME:
"OpenLayers.Size"});
OpenLayers.Console = {
log:
function(){}, debug:
function(){}, info:
function(){}, warn:
function(){}, error:
function(){}, userError:
function(
a){alert(
a)}, assert:
function(){}, dir:
function(){}, dirxml:
function(){}, trace:
function(){}, group:
function(){}, groupEnd:
function(){}, time:
function(){}, timeEnd:
function(){}, profile:
function(){}, profileEnd:
function(){}, count:
function(){}, CLASS_NAME:
"OpenLayers.Console"};
81 (
function(){
for (var
a =
document.getElementsByTagName(
"script"),
b = 0,
c =
a.length;
b <
c; ++
b)
if ( - 1 !=
a[
b].src.indexOf(
"firebug.js") && console){
OpenLayers.Util.extend(
OpenLayers.Console, console);
break}})();
OpenLayers.Lang = {code:
null, defaultCode:
"en", getCode:
function(){
OpenLayers.Lang.code ||
OpenLayers.Lang.setCode();
return OpenLayers.Lang.code}, setCode:
function(
a){var
b;
a || (
a =
"msie" ==
OpenLayers.BROWSER_NAME?navigator.userLanguage:navigator.language);
a =
a.split(
"-");
a[0] =
a[0].toLowerCase();
"object" == typeof
OpenLayers.Lang[
a[0]] && (
b =
a[0]);
if (
a[1]){var
c =
a[0] +
"-" +
a[1].toUpperCase();
"object" == typeof
OpenLayers.Lang[
c] && (
b =
c)}
b || (
OpenLayers.Console.warn(
"Failed to find OpenLayers.Lang." +
a.join(
"-") +
" dictionary, falling back to default language"),
83 OpenLayers.Util.indexOf =
function(
a,
b){
if (
"function" == typeof
a.indexOf)
return a.indexOf(
b);
for (var
c = 0,
d =
a.length;
c <
d;
c++)
if (
a[
c] ==
b)
return c;
return - 1};
OpenLayers.Util.dotless = /\./
g;
84 OpenLayers.Util.modifyDOMElement =
function(
a,
b,
c,
d,
e,
f,
g,
h){
b && (
a.id =
b.replace(
OpenLayers.Util.dotless,
"_"));
c && (
a.style.left =
c.x +
"px",
a.style.top =
c.y +
"px");
d && (
a.style.width =
d.w +
"px",
a.style.height =
d.h +
"px");
e && (
a.style.position =
e);
f && (
a.style.border =
f);
g && (
a.style.overflow =
g); 0 <= parseFloat(
h) && 1 > parseFloat(
h)?(
a.style.filter =
"alpha(opacity=" + 100 *
h +
")",
a.style.opacity =
h):1 == parseFloat(
h) && (
a.style.filter =
"",
a.style.opacity =
"")};
85 OpenLayers.Util.createDiv =
function(
a,
b,
c,
d,
e,
f,
g,
h){var
k =
document.createElement(
"div");
d && (
k.style.backgroundImage =
"url(" +
d +
")");
a || (
a =
OpenLayers.Util.createUniqueID(
"OpenLayersDiv"));
e || (
e =
"absolute");
OpenLayers.Util.modifyDOMElement(
k,
a,
b,
c,
e,
f,
g,
h);
return k};
86 OpenLayers.Util.createImage =
function(
a,
b,
c,
d,
e,
f,
g,
h){var
k =
document.createElement(
"img");
a || (
a =
OpenLayers.Util.createUniqueID(
"OpenLayersDiv"));
e || (
e =
"relative");
OpenLayers.Util.modifyDOMElement(
k,
a,
b,
c,
e,
f,
null,
g);
h && (
k.style.display =
"none",
b =
function(){
k.style.display =
"";
OpenLayers.Event.stopObservingElement(
k)},
OpenLayers.Event.observe(
k,
"load",
b),
OpenLayers.Event.observe(
k,
"error",
b));
k.style.alt =
a;
k.galleryImg =
"no";
d && (
k.src =
d);
return k};
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 0;
88 OpenLayers.Util.modifyAlphaImageDiv =
function(
a,
b,
c,
d,
e,
f,
g,
h,
k){
OpenLayers.Util.modifyDOMElement(
a,
b,
c,
d,
f,
null,
null,
k);
b =
a.childNodes[0];
e && (
b.src =
e);
OpenLayers.Util.modifyDOMElement(
b,
a.id +
"_innerImage",
null,
d,
"relative",
g);
OpenLayers.Util.alphaHack() && (
"none" !=
a.style.display && (
a.style.display =
"inline-block"),
null ==
h && (
h =
"scale"),
a.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
b.src +
"', sizingMethod='" +
h +
"')", 0 <= parseFloat(
a.style.opacity) && 1 > parseFloat(
a.style.opacity) &&
89 (
a.style.filter +=
" alpha(opacity=" + 100 *
a.style.opacity +
")"),
b.style.filter =
"alpha(opacity=0)")};
OpenLayers.Util.createAlphaImageDiv =
function(
a,
b,
c,
d,
e,
f,
g,
h,
k){var
l =
OpenLayers.Util.createDiv();
k =
OpenLayers.Util.createImage(
null,
null,
null,
null,
null,
null,
null,
k);
k.className =
"olAlphaImg";
l.appendChild(
k);
OpenLayers.Util.modifyAlphaImageDiv(
l,
a,
b,
c,
d,
e,
f,
g,
h);
return l};
OpenLayers.Util.upperCaseObject =
function(
a){var
b = {},
c;
for (
c in
a)
b[
c.toUpperCase()] =
a[
c];
return b};
90 OpenLayers.Util.applyDefaults =
function(
a,
b){
a =
a || {}; var
c =
"function" == typeof window.Event &&
b instanceof window.Event,
d;
for (
d in
b)
if (
void 0 ===
a[
d] || !
c &&
b.hasOwnProperty &&
b.hasOwnProperty(
d) && !
a.hasOwnProperty(
d))
a[
d] =
b[
d]; !
c && (
b &&
b.hasOwnProperty &&
b.hasOwnProperty(
"toString") && !
a.hasOwnProperty(
"toString")) && (
a.toString =
b.toString);
return a};
91 OpenLayers.Util.getParameterString =
function(
a){var
b = [],
c;
for (
c in
a){var
d =
a[
c];
if (
null !=
d &&
"function" != typeof
d){
if (
"object" == typeof
d &&
d.constructor ==
Array){
for (var
e = [],
f,
g = 0,
h =
d.length;
g <
h;
g++)
f =
d[
g],
e.push(encodeURIComponent(
null ===
f ||
void 0 ===
f?
"":
f));
d =
e.join(
",")}
else d = encodeURIComponent(
d);
b.push(encodeURIComponent(
c) +
"=" +
d)}}
return b.join(
"&")};
OpenLayers.Util.urlAppend =
function(
a,
b){var
c =
a;
if (
b)var
d = (
a +
" ").split(/[?&]/),
c =
c + (
" " ===
d.pop()?
b:
d.length?
"&" +
b:
"?" +
b);
return c};
93 OpenLayers.Util.getXmlNodeValue =
function(
a){var
b =
null;
OpenLayers.Util.Try(
function(){
b =
a.text;
b || (
b =
a.textContent);
b || (
b =
a.firstChild.nodeValue)},
function(){
b =
a.textContent});
return b};
OpenLayers.Util.mouseLeft =
function(
a,
b){
for (var
c =
a.relatedTarget?
a.relatedTarget:
a.toElement;
c !=
b &&
null !=
c; )
c =
c.parentNode;
return c !=
b};
OpenLayers.Util.DEFAULT_PRECISION = 14;
OpenLayers.Util.toFloat =
function(
a,
b){
null ==
b && (
b =
OpenLayers.Util.DEFAULT_PRECISION);
"number" !== typeof
a && (
a = parseFloat(
a));
return 0 ===
b?
a:parseFloat(
a.toPrecision(
b))};
95 OpenLayers.Util.distVincenty =
function(
a,
b){
for (var
c =
OpenLayers.Util.VincentyConstants,
d =
c.a,
e =
c.b,
c =
c.f,
f =
OpenLayers.Util.rad(
b.lon -
a.lon),
g =
Math.atan((1 -
c) *
Math.tan(
OpenLayers.Util.rad(
a.lat))),
h =
Math.atan((1 -
c) *
Math.tan(
OpenLayers.Util.rad(
b.lat))),
k =
Math.sin(
g),
g =
Math.cos(
g),
l =
Math.sin(
h),
h =
Math.cos(
h),
m =
f,
n = 2 *
Math.PI,
p = 20; 1
E-12 <
Math.abs(
m -
n) && 0 < --
p; ){var
q =
Math.sin(
m),
r =
Math.cos(
m),
s =
Math.sqrt(
h *
q *
h *
q + (
g *
l -
k *
h *
r) * (
g *
l -
k *
h *
r));
if (0 ==
s)
return 0; var
r =
k *
l +
g *
h *
r,
t =
Math.atan2(
s,
r),
u =
Math.asin(
g *
h *
96 q /
s),
v =
Math.cos(
u) *
Math.cos(
u),
q =
r - 2 *
k *
l /
v,
w =
c / 16 *
v * (4 +
c * (4 - 3 *
v)),
n =
m,
m =
f + (1 -
w) *
c *
Math.sin(
u) * (
t +
w *
s * (
q +
w *
r * ( - 1 + 2 *
q *
q)))}
if (0 ==
p)
return NaN;
d =
v * (
d *
d -
e *
e) / (
e *
e);
c =
d / 1024 * (256 +
d * ( - 128 +
d * (74 - 47 *
d)));
return(
e * (1 +
d / 16384 * (4096 +
d * ( - 768 +
d * (320 - 175 *
d)))) * (
t -
c *
s * (
q +
c / 4 * (
r * ( - 1 + 2 *
q *
q) -
c / 6 *
q * ( - 3 + 4 *
s *
s) * ( - 3 + 4 *
q *
q))))).toFixed(3) / 1E3};
97 OpenLayers.Util.destinationVincenty =
function(
a,
b,
c){var
d =
OpenLayers.Util,
e =
d.VincentyConstants,
f =
e.a,
g =
e.b,
h =
e.f,
e =
a.lon;
a =
a.lat; var
k =
d.rad(
b);
b =
Math.sin(
k);
k =
Math.cos(
k);
a = (1 -
h) *
Math.tan(
d.rad(
a)); var
l = 1 /
Math.sqrt(1 +
a *
a),
m =
a *
l,
n =
Math.atan2(
a,
k);
a =
l *
b;
for (var
p = 1 -
a *
a,
f =
p * (
f *
f -
g *
g) / (
g *
g),
q = 1 +
f / 16384 * (4096 +
f * ( - 768 +
f * (320 - 175 *
f))),
r =
f / 1024 * (256 +
f * ( - 128 +
f * (74 - 47 *
f))),
f =
c / (
g *
q),
s = 2 *
Math.PI; 1
E-12 <
Math.abs(
f -
s); )var
t =
Math.cos(2 *
n +
f),
u =
Math.sin(
f),
v =
Math.cos(
f),
w =
r *
u * (
t +
r / 4 * (
v * ( - 1 + 2 *
t *
t) -
r / 6 *
t * ( - 3 + 4 *
99 OpenLayers.Util.getParameters =
function(
a,
b){
b =
b || {};
a =
null ===
a ||
void 0 ===
a?window.location.href:
a; var
c =
"";
if (
OpenLayers.String.contains(
a,
"?"))var
d =
a.indexOf(
"?") + 1,
c =
OpenLayers.String.contains(
a,
"#")?
a.indexOf(
"#"):
a.length,
c =
a.substring(
d,
c);
for (var
d = {},
c =
c.split(/[&;]/),
e = 0,
f =
c.length;
e <
f; ++
e){var
g =
c[
e].split(
"=");
if (
g[0]){var
h =
g[0];
try{
h = decodeURIComponent(
h)}
catch (
k){
h = unescape(
h)}
g = (
g[1] ||
"").replace(/\+/
g,
" ");
try{
g = decodeURIComponent(
g)}
catch (
l){
g = unescape(
g)}!1 !==
b.splitArgs && (
g =
g.split(
","));
102 OpenLayers.Util.extend(
OpenLayers.INCHES_PER_UNIT, {Inch:OpenLayers.INCHES_PER_UNIT.inches, Meter:1 / OpenLayers.METERS_PER_INCH, Foot:0.3048006096012192 / OpenLayers.METERS_PER_INCH, IFoot:0.3048 / OpenLayers.METERS_PER_INCH, ClarkeFoot:0.3047972651151 / OpenLayers.METERS_PER_INCH, SearsFoot:0.30479947153867626 / OpenLayers.METERS_PER_INCH, GoldCoastFoot:0.3047997101815088 / OpenLayers.METERS_PER_INCH, IInch:0.0254 / OpenLayers.METERS_PER_INCH, MicroInch:2.54E-5 / OpenLayers.METERS_PER_INCH, Mil:2.54E-8 / OpenLayers.METERS_PER_INCH,
103 Centimeter:0.01 / OpenLayers.METERS_PER_INCH, Kilometer:1E3 / OpenLayers.METERS_PER_INCH, Yard:0.9144018288036576 / OpenLayers.METERS_PER_INCH, SearsYard:0.914398414616029 / OpenLayers.METERS_PER_INCH, IndianYard:0.9143985307444408 / OpenLayers.METERS_PER_INCH, IndianYd37:0.91439523 / OpenLayers.METERS_PER_INCH, IndianYd62:0.9143988 / OpenLayers.METERS_PER_INCH, IndianYd75:0.9143985 / OpenLayers.METERS_PER_INCH, IndianFoot:0.30479951 / OpenLayers.METERS_PER_INCH, IndianFt37:0.30479841 / OpenLayers.METERS_PER_INCH, IndianFt62:0.3047996 /
104 OpenLayers.METERS_PER_INCH, IndianFt75:0.3047995 / OpenLayers.METERS_PER_INCH, Mile:1609.3472186944373 / OpenLayers.METERS_PER_INCH, IYard:0.9144 / OpenLayers.METERS_PER_INCH, IMile:1609.344 / OpenLayers.METERS_PER_INCH, NautM:1852 / OpenLayers.METERS_PER_INCH,
"Lat-66":110943.31648893273 / OpenLayers.METERS_PER_INCH,
"Lat-83":110946.25736872235 / OpenLayers.METERS_PER_INCH, Decimeter:0.1 / OpenLayers.METERS_PER_INCH, Millimeter:0.001 / OpenLayers.METERS_PER_INCH, Dekameter:10 / OpenLayers.METERS_PER_INCH, Decameter:10 / OpenLayers.METERS_PER_INCH,
105 Hectometer:100 / OpenLayers.METERS_PER_INCH, GermanMeter:1.0000135965 / OpenLayers.METERS_PER_INCH, CaGrid:0.999738 / OpenLayers.METERS_PER_INCH, ClarkeChain:20.1166194976 / OpenLayers.METERS_PER_INCH, GunterChain:20.11684023368047 / OpenLayers.METERS_PER_INCH, BenoitChain:20.116782494375872 / OpenLayers.METERS_PER_INCH, SearsChain:20.11676512155 / OpenLayers.METERS_PER_INCH, ClarkeLink:0.201166194976 / OpenLayers.METERS_PER_INCH, GunterLink:0.2011684023368047 / OpenLayers.METERS_PER_INCH, BenoitLink:0.20116782494375873 / OpenLayers.METERS_PER_INCH,
106 SearsLink:0.2011676512155 / OpenLayers.METERS_PER_INCH, Rod:5.02921005842012 / OpenLayers.METERS_PER_INCH, IntnlChain:20.1168 / OpenLayers.METERS_PER_INCH, IntnlLink:0.201168 / OpenLayers.METERS_PER_INCH, Perch:5.02921005842012 / OpenLayers.METERS_PER_INCH, Pole:5.02921005842012 / OpenLayers.METERS_PER_INCH, Furlong:201.1684023368046 / OpenLayers.METERS_PER_INCH, Rood:3.778266898 / OpenLayers.METERS_PER_INCH, CapeFoot:0.3047972615 / OpenLayers.METERS_PER_INCH, Brealey:375 / OpenLayers.METERS_PER_INCH, ModAmFt:0.304812252984506 /
107 OpenLayers.METERS_PER_INCH, Fathom:1.8288 / OpenLayers.METERS_PER_INCH,
"NautM-UK":1853.184 / OpenLayers.METERS_PER_INCH,
"50kilometers":5E4 / OpenLayers.METERS_PER_INCH,
"150kilometers":15E4 / OpenLayers.METERS_PER_INCH});
108 OpenLayers.Util.extend(
OpenLayers.INCHES_PER_UNIT, {mm:OpenLayers.INCHES_PER_UNIT.Meter / 1E3, cm:OpenLayers.INCHES_PER_UNIT.Meter / 100, dm:100 * OpenLayers.INCHES_PER_UNIT.Meter, km:1E3 * OpenLayers.INCHES_PER_UNIT.Meter, kmi:OpenLayers.INCHES_PER_UNIT.nmi, fath:OpenLayers.INCHES_PER_UNIT.Fathom, ch:OpenLayers.INCHES_PER_UNIT.IntnlChain, link:OpenLayers.INCHES_PER_UNIT.IntnlLink,
"us-in":OpenLayers.INCHES_PER_UNIT.inches,
"us-ft":OpenLayers.INCHES_PER_UNIT.Foot,
"us-yd":OpenLayers.INCHES_PER_UNIT.Yard,
"us-ch":OpenLayers.INCHES_PER_UNIT.GunterChain,
109 "us-mi":OpenLayers.INCHES_PER_UNIT.Mile,
"ind-yd":OpenLayers.INCHES_PER_UNIT.IndianYd37,
"ind-ft":OpenLayers.INCHES_PER_UNIT.IndianFt37,
"ind-ch":20.11669506 / OpenLayers.METERS_PER_INCH});
OpenLayers.DOTS_PER_INCH = 72;
OpenLayers.Util.normalizeScale =
function(
a){
return 1 <
a?1 /
a:
a};
OpenLayers.Util.getResolutionFromScale =
function(
a,
b){var
c;
a && (
null ==
b && (
b =
"degrees"),
c = 1 / (
OpenLayers.Util.normalizeScale(
a) *
OpenLayers.INCHES_PER_UNIT[
b] *
OpenLayers.DOTS_PER_INCH));
return c};
111 OpenLayers.Util.pagePosition =
function(
a){var
b = [0, 0],
c =
OpenLayers.Util.getViewportElement();
if (!
a ||
a == window ||
a ==
c)
return b; var
d =
OpenLayers.IS_GECKO &&
document.getBoxObjectFor &&
"absolute" ==
OpenLayers.Element.getStyle(
a,
"position") && (
"" ==
a.style.top ||
"" ==
a.style.left),
e =
null;
if (
a.getBoundingClientRect)
a =
a.getBoundingClientRect(),
e = window.pageYOffset ||
c.scrollTop,
b[0] =
a.left + (window.pageXOffset ||
c.scrollLeft),
b[1] =
a.top +
e;
else if (
document.getBoxObjectFor && !
d)
a =
document.getBoxObjectFor(
a),
c =
document.getBoxObjectFor(
c),
112 b[0] =
a.screenX -
c.screenX,
b[1] =
a.screenY -
c.screenY;
else{
b[0] =
a.offsetLeft;
b[1] =
a.offsetTop;
e =
a.offsetParent;
if (
e !=
a)
for (;
e; )
b[0] +=
e.offsetLeft,
b[1] +=
e.offsetTop,
e =
e.offsetParent;
c =
OpenLayers.BROWSER_NAME;
if (
"opera" ==
c ||
"safari" ==
c &&
"absolute" ==
OpenLayers.Element.getStyle(
a,
"position"))
b[1] -=
document.body.offsetTop;
for (
e =
a.offsetParent;
e &&
e !=
document.body; ){
b[0] -=
e.scrollLeft;
if (
"opera" !=
c ||
"TR" !=
e.tagName)
b[1] -=
e.scrollTop;
e =
e.offsetParent}}
return b};
113 OpenLayers.Util.getViewportElement =
function(){var
a = arguments.callee.viewportElement;
void 0 ==
a && (
a =
"msie" ==
OpenLayers.BROWSER_NAME &&
"CSS1Compat" !=
document.compatMode?
document.body:
document.documentElement, arguments.callee.viewportElement =
a);
return a};
114 OpenLayers.Util.isEquivalentUrl =
function(
a,
b,
c){
c =
c || {};
OpenLayers.Util.applyDefaults(
c, {ignoreCase:!0, ignorePort80:!0, ignoreHash:!0, splitArgs:!1});
a =
OpenLayers.Util.createUrlObject(
a,
c);
b =
OpenLayers.Util.createUrlObject(
b,
c);
for (var
d in
a)
if (
"args" !==
d &&
a[
d] !=
b[
d])
return!1;
for (
d in
a.args){
if (
a.args[
d] !=
b.args[
d])
return!1;
delete b.args[
d]}
for (
d in
b.args)
return!1;
return!0};
116 c.hash?
"":
c.hash; var
e =
c.search;
e || (
e =
a.indexOf(
"?"),
e = - 1 !=
e?
a.substr(
e):
"");
d.args =
OpenLayers.Util.getParameters(
e, {splitArgs:b.splitArgs});
d.pathname =
"/" ==
c.pathname.charAt(0)?
c.pathname:
"/" +
c.pathname;
return d};
OpenLayers.Util.removeTail =
function(
a){var
b =
null,
b =
a.indexOf(
"?"),
c =
a.indexOf(
"#");
return b = - 1 ==
b? - 1 !=
c?
a.substr(0,
c):
a: - 1 !=
c?
a.substr(0,
Math.min(
b,
c)):
a.substr(0,
b)};
OpenLayers.IS_GECKO =
function(){var
a = navigator.userAgent.toLowerCase();
return - 1 ==
a.indexOf(
"webkit") && - 1 !=
a.indexOf(
"gecko")}();
117 OpenLayers.CANVAS_SUPPORTED =
function(){var
a =
document.createElement(
"canvas");
return!(!
a.getContext || !
a.getContext(
"2d"))}();
OpenLayers.BROWSER_NAME =
function(){var
a =
"",
b = navigator.userAgent.toLowerCase(); - 1 !=
b.indexOf(
"opera")?
a =
"opera": - 1 !=
b.indexOf(
"msie")?
a =
"msie": - 1 !=
b.indexOf(
"safari")?
a =
"safari": - 1 !=
b.indexOf(
"mozilla") && (
a = - 1 !=
b.indexOf(
"firefox")?
"firefox":
"mozilla");
return a}();
OpenLayers.Util.getBrowserName =
function(){
return OpenLayers.BROWSER_NAME};
118 OpenLayers.Util.getRenderedDimensions =
function(
a,
b,
c){var
d,
e,
f =
document.createElement(
"div");
f.style.visibility =
"hidden";
for (var
g =
c &&
c.containerElement?
c.containerElement:
document.body,
h = !1,
k =
null,
l =
g;
l &&
"body" !=
l.tagName.toLowerCase(); ){var
m =
OpenLayers.Element.getStyle(
l,
"position");
if (
"absolute" ==
m){
h = !0;
break}
else if (
m &&
"static" !=
m)
break;
l =
l.parentNode}!
h || 0 !==
g.clientHeight && 0 !==
g.clientWidth || (
k =
document.createElement(
"div"),
k.style.visibility =
"hidden",
k.style.position =
"absolute",
k.style.overflow =
119 "visible",
k.style.width =
document.body.clientWidth +
"px",
k.style.height =
document.body.clientHeight +
"px",
k.appendChild(
f));
f.style.position =
"absolute";
b && (
b.w?(
d =
b.w,
f.style.width =
d +
"px"):
b.h && (
e =
b.h,
f.style.height =
e +
"px"));
c &&
c.displayClass && (
f.className =
c.displayClass);
b =
document.createElement(
"div");
b.innerHTML =
a;
b.style.overflow =
"visible";
if (
b.childNodes)
for (
a = 0,
c =
b.childNodes.length;
a <
c;
a++)
b.childNodes[
a].style && (
b.childNodes[
a].style.overflow =
"visible");
f.appendChild(
b);
k?
g.appendChild(
k):
g.appendChild(
f);
120 d || (
d = parseInt(
b.scrollWidth),
f.style.width =
d +
"px");
e || (
e = parseInt(
b.scrollHeight));
f.removeChild(
b);
k?(
k.removeChild(
f),
g.removeChild(
k)):
g.removeChild(
f);
return new OpenLayers.Size(
d,
e)};
121 OpenLayers.Util.getScrollbarWidth =
function(){var
a =
OpenLayers.Util._scrollbarWidth;
if (
null ==
a){var
b =
null,
c =
null,
b =
a = 0,
b =
document.createElement(
"div");
b.style.position =
"absolute";
b.style.top =
"-1000px";
b.style.left =
"-1000px";
b.style.width =
"100px";
b.style.height =
"50px";
b.style.overflow =
"hidden";
c =
document.createElement(
"div");
c.style.width =
"100%";
c.style.height =
"200px";
b.appendChild(
c);
document.body.appendChild(
b);
a =
c.offsetWidth;
b.style.overflow =
"scroll";
b =
c.offsetWidth;
document.body.removeChild(
document.body.lastChild);
123 OpenLayers.Util.getFormattedLonLat =
function(
a,
b,
c){
c || (
c =
"dms");
a = (
a + 540) % 360 - 180; var
d =
Math.abs(
a),
e =
Math.floor(
d),
f =
d = (
d -
e) / (1 / 60),
d =
Math.floor(
d),
f =
Math.round(10 * ((
f -
d) / (1 / 60))),
f =
f / 10; 60 <=
f && (
f -= 60,
d += 1, 60 <=
d && (
d -= 60,
e += 1)); 10 >
e && (
e =
"0" +
e);
e +=
"\u00b0"; 0 <=
c.indexOf(
"dm") && (10 >
d && (
d =
"0" +
d),
e +=
d +
"'", 0 <=
c.indexOf(
"dms") && (10 >
f && (
f =
"0" +
f),
e +=
f +
'"'));
return e =
"lon" ==
b?
e + (0 >
a?
OpenLayers.i18n(
"W"):
OpenLayers.i18n(
"E")):
e + (0 >
a?
OpenLayers.i18n(
"S"):
OpenLayers.i18n(
"N"))};
OpenLayers.Format =
OpenLayers.Class({options:
null, externalProjection:
null, internalProjection:
null, data:
null, keepData:!1, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.options =
a}, destroy:
function(){}, read:
function(
a){
throw Error(
"Read not implemented."); }, write:
function(
a){
throw Error(
"Write not implemented."); }, CLASS_NAME:
"OpenLayers.Format"});
OpenLayers.Format.CSWGetRecords =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Format.CSWGetRecords.DEFAULTS); var
b =
OpenLayers.Format.CSWGetRecords[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported CSWGetRecords version: " +
a.version;
return new b(
a)};
OpenLayers.Format.CSWGetRecords.DEFAULTS = {
version:
"2.0.2"};
OpenLayers.Control =
OpenLayers.Class({id:
null, map:
null, div:
null, type:
null, allowSelection:!1, displayClass:
"", title:
"", autoActivate:!1, active:
null, handlerOptions:
null, handler:
null, eventListeners:
null, events:
null, initialize:
function(
a){this.displayClass = this.CLASS_NAME.replace(
"OpenLayers.",
"ol").replace(/\./
g,
"");
OpenLayers.Util.extend(
this,
a); this.events =
new OpenLayers.Events(
this);
if (this.eventListeners instanceof Object)this.events.on(this.eventListeners);
null == this.
id && (this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
124 "_"))}, destroy:
function(){this.events && (this.eventListeners && this.events.un(this.eventListeners), this.events.destroy(),
this.events =
null); this.eventListeners =
null; this.handler && (this.handler.destroy(), this.handler =
null);
if (this.handlers){
for (var
a in this.handlers)this.handlers.hasOwnProperty(
a) &&
"function" == typeof this.handlers[
a].destroy && this.handlers[
a].destroy(); this.handlers =
null}this.map && (this.map.removeControl(
this), this.map =
null); this.div =
null}, setMap:
function(
a){this.map =
a; this.handler &&
125 this.handler.setMap(
a)}, draw:
function(
a){
null == this.div && (this.div =
OpenLayers.Util.createDiv(this.
id), this.div.className =
this.displayClass,
this.allowSelection || (
this.div.className +=
" olControlNoSelect",
this.div.setAttribute(
"unselectable",
"on", 0),
this.div.onselectstart =
OpenLayers.Function.False),
"" !=
this.title && (
this.div.title =
this.title));
null !=
a && (this.
position =
a.clone()); this.
moveTo(this.position);
return this.div},
moveTo:
function(
a){
null !=
a &&
null != this.div && (this.div.style.left =
a.x +
"px", this.div.style.top =
126 a.y +
"px")}, activate:
function(){
if (this.active)
return!1; this.handler && this.handler.activate(); this.active = !0; this.map &&
OpenLayers.Element.addClass(this.map.viewPortDiv,
this.displayClass.replace(/ /
g,
"") +
"Active"); this.events.triggerEvent(
"activate");
return!0}, deactivate:
function(){
return this.active?(this.handler && this.handler.deactivate(), this.active = !1, this.map &&
OpenLayers.Element.removeClass(
this.map.viewPortDiv,
this.displayClass.replace(/ /
g,
"") +
"Active"),
this.events.triggerEvent(
"deactivate"),
127 !0):!1}, CLASS_NAME:
"OpenLayers.Control"});
OpenLayers.Control.TYPE_BUTTON = 1;
OpenLayers.Control.TYPE_TOGGLE = 2;
OpenLayers.Control.TYPE_TOOL = 3;
OpenLayers.Event = {observers:!1, KEY_SPACE:32, KEY_BACKSPACE:8, KEY_TAB:9, KEY_RETURN:13, KEY_ESC:27, KEY_LEFT:37, KEY_UP:38, KEY_RIGHT:39, KEY_DOWN:40, KEY_DELETE:46, element:
function(
a){
return a.target ||
a.srcElement}, isSingleTouch:
function(
a){
return a.touches && 1 ==
a.touches.length}, isMultiTouch:
function(
a){
return a.touches && 1 <
a.touches.length}, isLeftClick:
function(
a){
return a.which && 1 ==
a.which ||
a.button && 1 ==
a.button}, isRightClick:
function(
a){
return a.which && 3 ==
a.which ||
a.button && 2 ==
a.button},
stop:
function(
a,
128 b){
b ||
OpenLayers.Event.preventDefault(
a);
a.stopPropagation?
a.stopPropagation():
a.cancelBubble = !0}, preventDefault:
function(
a){
a.preventDefault?
a.preventDefault():
a.returnValue = !1}, findElement:
function(
a,
b){
for (var
c =
OpenLayers.Event.element(
a);
c.parentNode && (!
c.tagName ||
c.tagName.toUpperCase() !=
b.toUpperCase()); )
c =
c.parentNode;
return c}, observe:
function(
a,
b,
c,
d){
a =
OpenLayers.Util.getElement(
a);
d =
d || !1;
"keypress" ==
b && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
a.attachEvent) && (
b =
"keydown");
129 this.observers || (this.observers = {});
if (!
a._eventCacheID){var
e =
"eventCacheID_";
a.id && (
e =
a.id +
"_" +
e);
a._eventCacheID =
OpenLayers.Util.createUniqueID(
e)}
e =
a._eventCacheID; this.observers[
e] || (this.observers[
e] = []); this.observers[
e].push({element:
a, name:
b, observer:
c, useCapture:
d});
a.addEventListener?
a.addEventListener(
b,
c,
d):
a.attachEvent &&
a.attachEvent(
"on" +
b,
c)}, stopObservingElement:
function(
a){
a =
OpenLayers.Util.getElement(
a)._eventCacheID; this._removeElementObservers(
OpenLayers.Event.observers[
a])},
130 _removeElementObservers:
function(
a){
if (
a)
for (var
b =
a.length - 1; 0 <=
b;
b--){var
c =
a[
b];
OpenLayers.Event.stopObserving.apply(
this, [
c.element,
c.name,
c.observer,
c.useCapture])}}, stopObserving:
function(
a,
b,
c,
d){
d =
d || !1;
a =
OpenLayers.Util.getElement(
a); var
e =
a._eventCacheID;
"keypress" ==
b && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
a.detachEvent) && (
b =
"keydown"); var
f = !1,
g =
OpenLayers.Event.observers[
e];
if (
g)
for (var
h = 0; !
f &&
h <
g.length; ){var
k =
g[
h];
if (
k.name ==
b &&
k.observer ==
c &&
k.useCapture ==
d){
g.splice(
h,
131 1); 0 ==
g.length &&
delete OpenLayers.Event.observers[
e];
f = !0;
break}
h++}
f && (
a.removeEventListener?
a.removeEventListener(
b,
c,
d):
a &&
a.detachEvent &&
a.detachEvent(
"on" +
b,
c));
return f}, unloadCache:
function(){
if (
OpenLayers.Event &&
OpenLayers.Event.observers){
for (var
a in
OpenLayers.Event.observers)
OpenLayers.Event._removeElementObservers.apply(
this, [
OpenLayers.Event.observers[
a]]);
OpenLayers.Event.observers = !1}}, CLASS_NAME:
"OpenLayers.Event"};
133 OpenLayers.Events =
OpenLayers.Class({BROWSER_EVENTS:
"mouseover mouseout mousedown mouseup mousemove click dblclick rightclick dblrightclick resize focus blur touchstart touchmove touchend keydown".split(
" "), listeners:
null,
object:
null, element:
null, eventHandler:
null, fallThrough:
null, includeXY:!1, extensions:
null, extensionCount:
null, clearMouseListener:
null, initialize:
function(
a,
b,
c,
d,
e){
OpenLayers.Util.extend(
this,
e); this.
object = a; this.fallThrough =
d; this.listeners = {}; this.extensions = {}; this.extensionCount =
134 {}; this._msTouches = [];
null !=
b && this.attachToElement(
b)}, destroy:
function(){
for (var
a in this.extensions)
"boolean" !== typeof this.extensions[
a] && this.extensions[
a].destroy(); this.extensions =
null; this.element && (
OpenLayers.Event.stopObservingElement(this.element), this.element.hasScrollEvent &&
OpenLayers.Event.stopObserving(window,
"scroll",
this.clearMouseListener)); this.eventHandler = this.fallThrough = this.
object = this.listeners = this.element =
null}, addEventType:
function(
a){}, attachToElement:
function(
a){this.element?
135 OpenLayers.Event.stopObservingElement(this.element):(this.eventHandler =
OpenLayers.Function.bindAsEventListener(this.handleBrowserEvent,
this), this.clearMouseListener =
OpenLayers.Function.bind(
this.clearMouseCache,
this)); this.element =
a;
for (var
b = !!window.navigator.msMaxTouchPoints,
c,
d = 0,
e =
this.BROWSER_EVENTS.length;
d <
e;
d++)
c = this.BROWSER_EVENTS[
d],
OpenLayers.Event.observe(
a,
c, this.eventHandler),
b && 0 ===
c.indexOf(
"touch") && this.addMsTouchListener(
a,
c, this.eventHandler);
OpenLayers.Event.observe(
a,
"dragstart",
136 OpenLayers.Event.stop)}, on:
function(
a){
for (var
b in
a)
"scope" !=
b &&
a.hasOwnProperty(
b) && this.
register(b,
a.scope,
a[
b])},
register:
function(
a,
b,
c,
d){
a in
OpenLayers.Events && !this.extensions[
a] && (this.extensions[
a] =
new OpenLayers.Events[
a](
this));
if (
null !=
c){
null ==
b && (
b = this.
object); var
e = this.listeners[
a];
e || (
e = [], this.listeners[
a] =
e, this.extensionCount[
a] = 0);
b = {obj:
b, func:
c};
d?(
e.splice(this.extensionCount[
a], 0,
b),
"object" === typeof
d &&
d.extension &&
this.extensionCount[
a]++):
e.push(
b)}}, registerPriority:
function(
a,
137 b,
c){this.
register(a,
b,
c, !0)}, un:
function(
a){
for (var
b in
a)
"scope" !=
b &&
a.hasOwnProperty(
b) && this.unregister(
b,
a.scope,
a[
b])}, unregister:
function(
a,
b,
c){
null ==
b && (
b = this.
object);
a = this.listeners[
a];
if (
null !=
a)
for (var
d = 0,
e =
a.length;
d <
e;
d++)
if (
a[
d].obj ==
b &&
a[
d].func ==
c){
a.splice(
d, 1);
break}},
remove:
function(
a){
null != this.listeners[
a] && (this.listeners[
a] = [])}, triggerEvent:
function(
a,
b){var
c = this.listeners[
a];
if (
c && 0 !=
c.length){
null ==
b && (
b = {});
b.object = this.
object;
b.element = this.element;
b.type || (
b.type =
138 a);
for (var
c =
c.slice(),
d,
e = 0,
f =
c.length;
e <
f && (
d =
c[
e],
d =
d.func.apply(
d.obj, [
b]),
void 0 ==
d || !1 !=
d);
e++); this.fallThrough ||
OpenLayers.Event.stop(
b, !0);
return d}}, handleBrowserEvent:
function(
a){var
b =
a.type,
c = this.listeners[
b];
if (
c && 0 !=
c.length){
if ((
c =
a.touches) &&
c[0]){
for (var
d = 0,
e = 0,
f =
c.length,
g,
h = 0;
h <
f; ++
h)
g = this.getTouchClientXY(
c[
h]),
d +=
g.clientX,
e +=
g.clientY;
a.clientX =
d /
f;
a.clientY =
e /
f}this.includeXY && (
a.xy = this.getMousePosition(
a)); this.triggerEvent(
b,
a)}}, getTouchClientXY:
function(
a){var
b = window.olMockWin ||
139 window,
c =
b.pageXOffset,
b =
b.pageYOffset,
d =
a.clientX,
e =
a.clientY;
if (0 ===
a.pageY &&
Math.floor(
e) >
Math.floor(
a.pageY) || 0 ===
a.pageX &&
Math.floor(
d) >
Math.floor(
a.pageX))
d -=
c,
e -=
b;
else if (
e <
a.pageY -
b ||
d <
a.pageX -
c)
d =
a.pageX -
c,
e =
a.pageY -
b;
a.olClientX =
d;
a.olClientY =
e;
return{clientX:
d, clientY:
e}}, clearMouseCache:
function(){this.element.scrolls =
null; this.element.lefttop =
null; this.element.offsets =
null}, getMousePosition:
function(
a){this.includeXY?this.element.hasScrollEvent || (
OpenLayers.Event.observe(window,
"scroll",
140 this.clearMouseListener), this.element.hasScrollEvent = !0):this.clearMouseCache();
if (!this.element.scrolls){var
b =
OpenLayers.Util.getViewportElement(); this.element.scrolls = [window.pageXOffset ||
b.scrollLeft, window.pageYOffset ||
b.scrollTop]}this.element.lefttop || (this.element.lefttop = [
document.documentElement.clientLeft || 0,
document.documentElement.clientTop || 0]); this.element.offsets || (this.element.offsets =
OpenLayers.Util.pagePosition(this.element));
return new OpenLayers.Pixel(
a.clientX +
this.element.scrolls[0] -
141 this.element.offsets[0] -
this.element.lefttop[0],
a.clientY +
this.element.scrolls[1] -
this.element.offsets[1] -
this.element.lefttop[1])}, addMsTouchListener:
function(
a,
b,
c){
function d(
a){
c(
OpenLayers.Util.applyDefaults({stopPropagation:function(){for (var a = e.length - 1; 0 <= a; --a)e[a].stopPropagation()}, preventDefault:
function(){for (var a = e.length - 1; 0 <= a; --a)e[a].preventDefault()}, type:
b},
a))}var
e = this._msTouches;
switch (
b){
case "touchstart":
return this.addMsTouchListenerStart(
a,
b,
d);
case "touchend":
return this.addMsTouchListenerEnd(
a,
142 b,
d);
case "touchmove":
return this.addMsTouchListenerMove(
a,
b,
d);
default:
throw"Unknown touch event type"; }}, addMsTouchListenerStart:
function(
a,
b,
c){var
d = this._msTouches;
OpenLayers.Event.observe(
a,
"MSPointerDown",
function(
a){
for (var
b = !1,
g = 0,
h =
d.length;
g <
h; ++
g)
if (
d[
g].pointerId ==
a.pointerId){
b = !0;
break}
b ||
d.push(
a);
a.touches =
d.slice();
c(
a)});
OpenLayers.Event.observe(
a,
"MSPointerUp",
function(
a){
for (var
b = 0,
c =
d.length;
b <
c; ++
b)
if (
d[
b].pointerId ==
a.pointerId){
d.splice(
b, 1);
break}})}, addMsTouchListenerMove:
function(
a,
143 b,
c){var
d = this._msTouches;
OpenLayers.Event.observe(
a,
"MSPointerMove",
function(
a){
if (
a.pointerType !=
a.MSPOINTER_TYPE_MOUSE || 0 !=
a.buttons)
if (1 !=
d.length ||
d[0].pageX !=
a.pageX ||
d[0].pageY !=
a.pageY){
for (var
b = 0,
g =
d.length;
b <
g; ++
b)
if (
d[
b].pointerId ==
a.pointerId){
d[
b] =
a;
break}
a.touches =
d.slice();
c(
a)}})}, addMsTouchListenerEnd:
function(
a,
b,
c){var
d = this._msTouches;
OpenLayers.Event.observe(
a,
"MSPointerUp",
function(
a){
for (var
b = 0,
g =
d.length;
b <
g; ++
b)
if (
d[
b].pointerId ==
a.pointerId){
d.splice(
b, 1);
break}
a.touches =
144 d.slice();
c(
a)})}, CLASS_NAME:
"OpenLayers.Events"});
OpenLayers.Events.buttonclick =
OpenLayers.Class({target:
null, events:
"mousedown mouseup click dblclick touchstart touchmove touchend keydown".split(
" "), startRegEx:/^mousedown|touchstart$/, cancelRegEx:/^touchmove$/, completeRegEx:/^mouseup|touchend$/, initialize:
function(
a){this.target =
a;
for (
a = this.events.length - 1; 0 <=
a; --
a)this.target.register(this.events[
a],
this, this.buttonClick, {extension:!0})}, destroy:
function(){
for (var
a = this.events.length - 1; 0 <=
a; --
a)this.target.unregister(this.events[
a],
this, this.buttonClick);
145 delete this.target}, getPressedButton:
function(
a){var
b = 3,
c;
do{
if (
OpenLayers.Element.hasClass(
a,
"olButton")){
c =
a;
break}
a =
a.parentNode}
while (0 < --
b &&
a);
return c}, ignore:
function(
a){var
b = 3,
c = !1;
do{
if (
"a" ===
a.nodeName.toLowerCase()){
c = !0;
break}
a =
a.parentNode}
while (0 < --
b &&
a);
return c}, buttonClick:
function(
a){var
b = !0,
c =
OpenLayers.Event.element(
a);
if (
c && (
OpenLayers.Event.isLeftClick(
a) || !~
a.type.indexOf(
"mouse")))
if (
c = this.getPressedButton(
c)){
if (
"keydown" ===
a.type)
switch (
a.keyCode){
case OpenLayers.Event.KEY_RETURN:
case OpenLayers.Event.KEY_SPACE:this.target.triggerEvent(
"buttonclick",
146{buttonElement:
c}),
OpenLayers.Event.stop(
a),
b = !1}
else if (this.startEvt){
if (this.completeRegEx.test(
a.type)){var
b =
OpenLayers.Util.pagePosition(
c),
d =
OpenLayers.Util.getViewportElement(),
e = window.pageYOffset ||
d.scrollTop;
b[0] -= window.pageXOffset ||
d.scrollLeft;
b[1] -=
e; this.target.triggerEvent(
"buttonclick", {buttonElement:
c, buttonXY:{
x:this.startEvt.clientX -
b[0],
y:this.startEvt.clientY -
b[1]}})}this.cancelRegEx.test(
a.type) &&
delete this.startEvt;
OpenLayers.Event.stop(
a);
b = !1}this.startRegEx.test(
a.type) &&
148 OpenLayers.Util.vendorPrefix =
function(){
function a(
a){
return a?
a.replace(/([
A-
Z])/
g,
function(
a){
return"-" +
a.toLowerCase()}).replace(/^ms-/,
"-ms-"):
null}
function b(
a,
b){
if (
void 0 ===
g[
b]){var
c,
e = 0,
f =
d.length,
p =
"undefined" !== typeof
a.cssText;
for (
g[
b] =
null;
e <
f;
e++)
if ((
c =
d[
e])?(
p || (
c =
c.toLowerCase()),
c =
c +
b.charAt(0).toUpperCase() +
b.slice(1)):
c =
b,
void 0 !==
a[
c]){
g[
b] =
c;
break}}
return g[
b]}
function c(
a){
return b(
e,
a)}var
d = [
"",
"O",
"ms",
"Moz",
"Webkit"],
e =
document.createElement(
"div").style,
f = {},
g = {};
return{css:
function(
b){
if (
void 0 ===
149 f[
b]){var
d =
b.replace(/(-[\
s\
S])/
g,
function(
a){
return a.charAt(1).toUpperCase()}),
d =
c(
d);
f[
b] =
a(
d)}
return f[
b]}, js:
b,
style:
c, cssCache:
f, jsCache:
g}}();
OpenLayers.Animation =
function(
a){var
b =
OpenLayers.Util.vendorPrefix.js(
a,
"requestAnimationFrame"),
c = !!
b,
d =
function(){var
c =
a[
b] ||
function(
b,
c){
a.setTimeout(
b, 16)};
return function(
b,
d){
c.apply(
a, [
b,
d])}}(),
e = 0,
f = {};
return{isNative:
c, requestFrame:
d, start:
function(
a,
b,
c){
b = 0 <
b?
b:
Number.POSITIVE_INFINITY; var
l = ++
e,
m = +
new Date;
f[
l] =
function(){
f[
l] && +
new Date -
m <=
b?(
a(),
f[
l] &&
d(
f[
l],
c)):delete
f[
l]};
d(
f[
l],
c);
return l},
stop:
function(
a){
delete f[
a]}}}(window);
OpenLayers.Tween =
OpenLayers.Class({easing:
null, begin:
null, finish:
null, duration:
null, callbacks:
null, time:
null, minFrameRate:
null, startTime:
null, animationId:
null, playing:!1, initialize:
function(
a){this.easing =
a?
a:
OpenLayers.Easing.Expo.easeOut}, start:
function(
a,
b,
c,
d){this.playing = !0; this.begin =
a; this.finish =
b; this.duration =
c; this.callbacks =
d.callbacks; this.minFrameRate =
d.minFrameRate || 30; this.time = 0; this.startTime = (
new Date).getTime();
OpenLayers.Animation.stop(this.animationId); this.animationId =
null;
150 this.callbacks && this.callbacks.start && this.callbacks.start.call(
this, this.begin); this.animationId =
OpenLayers.Animation.start(
OpenLayers.Function.bind(
this.play,
this))},
stop:
function(){this.playing && (this.callbacks && this.callbacks.done && this.callbacks.done.call(
this, this.finish),
OpenLayers.Animation.stop(
this.animationId),
this.animationId =
null,
this.playing = !1)},
play:
function(){var
a = {},
b;
for (
b in this.begin){var
c = this.begin[
b],
d = this.finish[
b];
if (
null ==
c ||
null ==
d || isNaN(
c) || isNaN(
d))
throw new TypeError(
"invalid value for Tween");
151 a[
b] = this.easing.apply(
this, [this.time,
c,
d -
c, this.duration])}this.time++; this.callbacks && this.callbacks.eachStep && ((
new Date).getTime() - this.startTime) / this.time <= 1E3 / this.minFrameRate && this.callbacks.eachStep.call(
this,
a); this.time > this.duration && this.
stop()}, CLASS_NAME:
"OpenLayers.Tween"});
OpenLayers.Easing = {CLASS_NAME:
"OpenLayers.Easing"};
OpenLayers.Easing.Linear = {easeIn:
function(
a,
b,
c,
d){
return c *
a /
d +
b}, easeOut:
function(
a,
b,
c,
d){
return c *
a /
d +
b}, easeInOut:
function(
a,
b,
c,
d){
return c *
a /
d +
b}, CLASS_NAME:
"OpenLayers.Easing.Linear"};
152 OpenLayers.Easing.Expo = {easeIn:
function(
a,
b,
c,
d){
return 0 ==
a?
b:
c *
Math.pow(2, 10 * (
a /
d - 1)) +
b}, easeOut:
function(
a,
b,
c,
d){
return a ==
d?
b +
c:
c * ( -
Math.pow(2, - 10 *
a /
d) + 1) +
b}, easeInOut:
function(
a,
b,
c,
d){
return 0 ==
a?
b:
a ==
d?
b +
c:1 > (
a /=
d / 2)?
c / 2 *
Math.pow(2, 10 * (
a - 1)) +
b:
c / 2 * ( -
Math.pow(2, - 10 * --
a) + 2) +
b}, CLASS_NAME:
"OpenLayers.Easing.Expo"};
153 OpenLayers.Easing.Quad = {easeIn:
function(
a,
b,
c,
d){
return c * (
a /=
d) *
a +
b}, easeOut:
function(
a,
b,
c,
d){
return -
c * (
a /=
d) * (
a - 2) +
b}, easeInOut:
function(
a,
b,
c,
d){
return 1 > (
a /=
d / 2)?
c / 2 *
a *
a +
b: -
c / 2 * (--
a * (
a - 2) - 1) +
b}, CLASS_NAME:
"OpenLayers.Easing.Quad"};
OpenLayers.Projection =
OpenLayers.Class({proj:
null, projCode:
null, titleRegEx:/\+title=[^\+]*/, initialize:
function(
a,
b){
OpenLayers.Util.extend(
this,
b); this.projCode =
a;
"object" == typeof Proj4js && (this.proj =
new Proj4js.Proj(
a))}, getCode:
function(){
return this.proj?this.proj.srsCode:this.projCode}, getUnits:
function(){
return this.proj?this.proj.units:
null}, toString:
function(){
return this.getCode()}, equals:
function(
a){var
b = !1;
a && (
a instanceof
OpenLayers.Projection || (
a =
new OpenLayers.Projection(
a)),
"object" ==
154 typeof Proj4js && this.proj.defData &&
a.proj.defData?
b =
this.proj.defData.replace(
this.titleRegEx,
"") ==
a.proj.defData.replace(
this.titleRegEx,
""):
a.getCode && (
b =
this.getCode(),
a =
a.getCode(),
b =
b ==
a || !!
OpenLayers.Projection.transforms[
b] &&
OpenLayers.Projection.transforms[
b][
a] ===
OpenLayers.Projection.nullTransform));
return b}, destroy:
function(){
delete this.proj;
delete this.projCode}, CLASS_NAME:
"OpenLayers.Projection"});
OpenLayers.Projection.transforms = {};
155 OpenLayers.Projection.defaults = {
"EPSG:4326":{units:
"degrees", maxExtent:[ - 180, - 90, 180, 90], yx:!0},
"CRS:84":{units:
"degrees", maxExtent:[ - 180, - 90, 180, 90]},
"EPSG:900913":{units:
"m", maxExtent:[ - 2.003750834E7, - 2.003750834E7, 2.003750834E7, 2.003750834E7]}};
158 (
function(){
function a(
a){
a.x = 180 *
a.x /
d;
a.y = 180 /
Math.PI * (2 *
Math.atan(
Math.exp(
a.y /
d *
Math.PI)) -
Math.PI / 2);
return a}
function b(
a){
a.x =
a.x *
d / 180; var
b =
Math.log(
Math.tan((90 +
a.y) *
Math.PI / 360)) /
Math.PI *
d;
a.y =
Math.max( - 2.003750834E7,
Math.min(
b, 2.003750834E7));
return a}
function c(
c,
d){var
e =
OpenLayers.Projection.addTransform,
f =
OpenLayers.Projection.nullTransform,
g,
p,
q,
r,
s;
g = 0;
for (
p =
d.length;
g <
p; ++
g)
for (
q =
d[
g],
e(
c,
q,
b),
e(
q,
c,
a),
s =
g + 1;
s <
p; ++
s)
r =
d[
s],
e(
q,
r,
f),
e(
r,
q,
f)}var
d = 2.003750834E7,
e = [
"EPSG:900913",
"EPSG:3857",
159 "EPSG:102113",
"EPSG:102100"],
f = [
"CRS:84",
"urn:ogc:def:crs:EPSG:6.6:4326",
"EPSG:4326"],
g;
for (
g =
e.length - 1; 0 <=
g; --
g)
c(
e[
g],
f);
for (
g =
f.length - 1; 0 <=
g; --
g)
c(
f[
g],
e)})();
OpenLayers.Map =
OpenLayers.Class({Z_INDEX_BASE:{BaseLayer:100, Overlay:325,
Feature:725, Popup:750,
Control:1E3}, id:
null, fractionalZoom:!1, events:
null, allOverlays:!1, div:
null, dragging:!1, size:
null, viewPortDiv:
null, layerContainerOrigin:
null, layerContainerDiv:
null, layers:
null, controls:
null, popups:
null, baseLayer:
null, center:
null, resolution:
null, zoom:0, panRatio:1.5, options:
null, tileSize:
null, projection:
"EPSG:4326", units:
null, resolutions:
null, maxResolution:
null, minResolution:
null, maxScale:
null, minScale:
null,
160 maxExtent:
null, minExtent:
null, restrictedExtent:
null, numZoomLevels:16, theme:
null, displayProjection:
null, fallThrough:!1, autoUpdateSize:!0, eventListeners:
null, panTween:
null, panMethod:
OpenLayers.Easing.Expo.easeOut, panDuration:50, zoomTween:
null, zoomMethod:
OpenLayers.Easing.Quad.easeOut, zoomDuration:20, paddingForPopups:
null, layerContainerOriginPx:
null, minPx:
null, maxPx:
null, initialize:
function(
a,
b){1 === arguments.length &&
"object" === typeof
a && (
a = (
b =
a) &&
b.div); this.tileSize =
new OpenLayers.Size(
OpenLayers.Map.TILE_WIDTH,
161 OpenLayers.Map.TILE_HEIGHT); this.paddingForPopups =
new OpenLayers.Bounds(15, 15, 15, 15); this.theme =
OpenLayers._getScriptLocation() +
"theme/default/style.css"; this.options =
OpenLayers.Util.extend({},
b);
OpenLayers.Util.extend(
this,
b);
OpenLayers.Util.applyDefaults(
this,
OpenLayers.Projection.defaults[
this.projection instanceof
OpenLayers.Projection?
this.projection.projCode:
this.projection]); !this.maxExtent || this.maxExtent instanceof
OpenLayers.Bounds || (this.maxExtent =
new OpenLayers.Bounds(this.maxExtent));
162 !this.minExtent || this.minExtent instanceof
OpenLayers.Bounds || (this.minExtent =
new OpenLayers.Bounds(this.minExtent)); !this.restrictedExtent || this.restrictedExtent instanceof
OpenLayers.Bounds || (this.restrictedExtent =
new OpenLayers.Bounds(this.restrictedExtent)); !this.center || this.center instanceof
OpenLayers.LonLat || (this.center =
new OpenLayers.LonLat(this.center)); this.layers = []; this.
id =
OpenLayers.Util.createUniqueID(
"OpenLayers.Map_"); this.div =
OpenLayers.Util.getElement(
a); this.div || (this.div =
document.createElement(
"div"),
163 this.div.style.height =
"1px",
this.div.style.width =
"1px");
OpenLayers.Element.addClass(this.div,
"olMap"); var
c = this.
id +
"_OpenLayers_ViewPort"; this.viewPortDiv =
OpenLayers.Util.createDiv(
c,
null,
null,
null,
"relative",
null,
"hidden"); this.viewPortDiv.style.width =
"100%"; this.viewPortDiv.style.height =
"100%"; this.viewPortDiv.className =
"olMapViewport"; this.div.appendChild(this.viewPortDiv); this.events =
new OpenLayers.Events(
this, this.viewPortDiv,
null, this.fallThrough, {includeXY:!0});
OpenLayers.TileManager &&
null !==
164 this.tileManager && (this.tileManager instanceof
OpenLayers.TileManager || (this.tileManager =
new OpenLayers.TileManager(this.tileManager)), this.tileManager.addMap(
this));
c = this.
id +
"_OpenLayers_Container"; this.layerContainerDiv =
OpenLayers.Util.createDiv(
c); this.layerContainerDiv.style.zIndex = this.Z_INDEX_BASE.Popup - 1; this.layerContainerOriginPx = {
x:0,
y:0}; this.applyTransform(); this.viewPortDiv.appendChild(this.layerContainerDiv); this.updateSize();
if (this.eventListeners instanceof Object)this.events.on(this.eventListeners);
165 !0 === this.autoUpdateSize && (this.updateSizeDestroy =
OpenLayers.Function.bind(this.updateSize,
this),
OpenLayers.Event.observe(window,
"resize",
this.updateSizeDestroy));
if (this.theme){
for (var
c = !0,
d =
document.getElementsByTagName(
"link"),
e = 0,
f =
d.length;
e <
f; ++
e)
if (
OpenLayers.Util.isEquivalentUrl(
d.item(
e).href,
this.theme)){
c = !1;
break}
c && (
c =
document.createElement(
"link"),
c.setAttribute(
"rel",
"stylesheet"),
c.setAttribute(
"type",
"text/css"),
c.setAttribute(
"href",
this.theme),
document.getElementsByTagName(
"head")[0].appendChild(
c))}
null ==
167 this.controls.push(
new OpenLayers.Control.Attribution)));
e = 0;
for (
f = this.controls.length;
e <
f;
e++)this.addControlToMap(this.controls[
e]); this.popups = []; this.unloadDestroy =
OpenLayers.Function.bind(this.destroy,
this);
OpenLayers.Event.observe(window,
"unload", this.unloadDestroy);
b &&
b.layers && (
delete this.center,
delete this.zoom, this.addLayers(
b.layers),
b.center && !this.getCenter() && this.setCenter(
b.center,
b.zoom)); this.panMethod && (this.panTween =
new OpenLayers.Tween(this.panMethod)); this.zoomMethod && this.applyTransform.transform &&
168 (this.zoomTween =
new OpenLayers.Tween(this.zoomMethod))}, getViewport:
function(){
return this.viewPortDiv}, render:
function(
a){this.div =
OpenLayers.Util.getElement(
a);
OpenLayers.Element.addClass(this.div,
"olMap"); this.viewPortDiv.parentNode.removeChild(this.viewPortDiv); this.div.appendChild(this.viewPortDiv); this.updateSize()}, unloadDestroy:
null, updateSizeDestroy:
null, destroy:
function(){
if (!this.unloadDestroy)
return!1; this.panTween && (this.panTween.stop(), this.panTween =
null); this.zoomTween && (this.zoomTween.stop(),
169 this.zoomTween =
null);
OpenLayers.Event.stopObserving(window,
"unload", this.unloadDestroy); this.unloadDestroy =
null; this.updateSizeDestroy &&
OpenLayers.Event.stopObserving(window,
"resize", this.updateSizeDestroy); this.paddingForPopups =
null;
if (
null != this.controls){
for (var
a = this.controls.length - 1; 0 <=
a; --
a)this.controls[
a].destroy(); this.controls =
null}
if (
null != this.layers){
for (
a = this.layers.length - 1; 0 <=
a; --
a)this.layers[
a].destroy(!1); this.layers =
null}this.viewPortDiv && this.viewPortDiv.parentNode && this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);
170 this.viewPortDiv =
null; this.tileManager && (this.tileManager.removeMap(
this), this.tileManager =
null); this.eventListeners && (this.events.un(this.eventListeners), this.eventListeners =
null); this.events.destroy(); this.options = this.events =
null}, setOptions:
function(
a){var
b = this.minPx &&
a.restrictedExtent != this.restrictedExtent;
OpenLayers.Util.extend(
this,
a);
b && this.
moveTo(this.getCachedCenter(), this.zoom, {forceZoomChange:!0})}, getTileSize:
function(){
return this.tileSize}, getBy:
function(
a,
b,
c){var
d =
"function" ==
171 typeof
c.test;
return OpenLayers.Array.filter(
this[
a],
function(
a){
return a[
b] ==
c ||
d &&
c.test(
a[
b])})}, getLayersBy:
function(
a,
b){
return this.getBy(
"layers",
a,
b)}, getLayersByName:
function(
a){
return this.getLayersBy(
"name",
a)}, getLayersByClass:
function(
a){
return this.getLayersBy(
"CLASS_NAME",
a)}, getControlsBy:
function(
a,
b){
return this.getBy(
"controls",
a,
b)}, getControlsByClass:
function(
a){
return this.getControlsBy(
"CLASS_NAME",
a)}, getLayer:
function(
a){
for (var
b =
null,
c = 0,
d = this.layers.length;
c <
d;
c++){var
e =
172 this.layers[
c];
if (
e.id ==
a){
b =
e;
break}}
return b}, setLayerZIndex:
function(
a,
b){
a.setZIndex(this.Z_INDEX_BASE[
a.isBaseLayer?
"BaseLayer":
"Overlay"] + 5 *
b)}, resetLayersZIndex:
function(){
for (var
a = 0,
b = this.layers.length;
a <
b;
a++)this.setLayerZIndex(this.layers[
a],
a)}, addLayer:
function(
a){
for (var
b = 0,
c = this.layers.length;
b <
c;
b++)
if (this.layers[
b] ==
a)
return!1;
if (!1 === this.events.triggerEvent(
"preaddlayer", {layer:a}))
return!1; this.allOverlays && (
a.isBaseLayer = !1);
a.div.className =
"olLayerDiv";
a.div.style.overflow =
173 ""; this.setLayerZIndex(
a, this.layers.length);
a.isFixed?this.viewPortDiv.appendChild(
a.div):this.layerContainerDiv.appendChild(
a.div); this.layers.push(
a);
a.setMap(
this);
a.isBaseLayer || this.allOverlays && !this.baseLayer?
null == this.baseLayer?this.setBaseLayer(
a):
a.setVisibility(!1):
a.redraw(); this.events.triggerEvent(
"addlayer", {layer:
a});
a.events.triggerEvent(
"added", {map:
this, layer:
a});
a.afterAdd();
return!0}, addLayers:
function(
a){
for (var
b = 0,
c =
a.length;
b <
c;
b++)this.addLayer(
a[
b])}, removeLayer:
function(
a,
174 b){
if (!1 !== this.events.triggerEvent(
"preremovelayer", {layer:a})){
null ==
b && (
b = !0);
a.isFixed?this.viewPortDiv.removeChild(
a.div):this.layerContainerDiv.removeChild(
a.div);
OpenLayers.Util.removeItem(this.layers,
a);
a.removeMap(
this);
a.map =
null;
if (this.baseLayer ==
a && (this.baseLayer =
null,
b))
for (var
c = 0,
d = this.layers.length;
c <
d;
c++){var
e = this.layers[
c];
if (
e.isBaseLayer ||
this.allOverlays){this.setBaseLayer(
e);
break}}this.resetLayersZIndex(); this.events.triggerEvent(
"removelayer", {layer:
a});
a.events.triggerEvent(
"removed",
175{map:
this, layer:
a})}}, getNumLayers:
function(){
return this.layers.length}, getLayerIndex:
function(
a){
return OpenLayers.Util.indexOf(this.layers,
a)}, setLayerIndex:
function(
a,
b){var
c = this.getLayerIndex(
a); 0 >
b?
b = 0:
b > this.layers.length && (
b = this.layers.length);
if (
c !=
b){this.layers.splice(
c, 1); this.layers.splice(
b, 0,
a);
for (var
c = 0,
d = this.layers.length;
c <
d;
c++)this.setLayerZIndex(this.layers[
c],
c); this.events.triggerEvent(
"changelayer", {layer:
a, property:
"order"}); this.allOverlays && (0 ===
b?this.setBaseLayer(
a):
176 this.baseLayer !==
this.layers[0] &&
this.setBaseLayer(
this.layers[0]))}}, raiseLayer:function(
a,
b){var
c = this.getLayerIndex(
a) +
b; this.setLayerIndex(
a,
c)}, setBaseLayer:
function(
a){
if (
a != this.baseLayer && - 1 !=
OpenLayers.Util.indexOf(
this.layers,
a)){var
b = this.getCachedCenter(),
c =
OpenLayers.Util.getResolutionFromScale(this.getScale(),
a.units);
null == this.baseLayer || this.allOverlays || this.baseLayer.setVisibility(!1); this.baseLayer =
a;
if (!this.allOverlays || this.baseLayer.visibility)this.baseLayer.setVisibility(!0),
177 !1 === this.baseLayer.inRange && this.baseLayer.redraw();
null !=
b && (
a = this.getZoomForResolution(
c || this.resolution, !0), this.setCenter(
b,
a, !1, !0)); this.events.triggerEvent(
"changebaselayer", {layer:this.baseLayer})}}, addControl:
function(
a,
b){this.controls.push(
a); this.addControlToMap(
a,
b)}, addControls:
function(
a,
b){
for (var
c = 1 === arguments.length?[]:
b,
d = 0,
e =
a.length;
d <
e;
d++)this.addControl(
a[
d],
c[
d]?
c[
d]:
null)}, addControlToMap:
function(
a,
b){
a.outsideViewport =
null !=
a.div; this.displayProjection && !
a.displayProjection &&
178 (
a.displayProjection = this.displayProjection);
a.setMap(
this); var
c =
a.draw(
b);
c && !
a.outsideViewport && (
c.style.zIndex = this.Z_INDEX_BASE.Control + this.controls.length, this.viewPortDiv.appendChild(
c));
a.autoActivate &&
a.activate()}, getControl:
function(
a){
for (var
b =
null,
c = 0,
d = this.controls.length;
c <
d;
c++){var
e = this.controls[
c];
if (
e.id ==
a){
b =
e;
break}}
return b}, removeControl:
function(
a){
a &&
a == this.getControl(
a.id) && (
a.div &&
a.div.parentNode == this.viewPortDiv && this.viewPortDiv.removeChild(
a.div),
OpenLayers.Util.removeItem(
this.controls,
179 a))}, addPopup:
function(
a,
b){
if (
b)
for (var
c = this.popups.length - 1; 0 <=
c; --
c)this.removePopup(this.popups[
c]);
a.map =
this; this.popups.push(
a);
if (
c =
a.draw())
c.style.zIndex = this.Z_INDEX_BASE.Popup + this.popups.length, this.layerContainerDiv.appendChild(
c)}, removePopup:
function(
a){
OpenLayers.Util.removeItem(this.popups,
a);
if (
a.div)
try{this.layerContainerDiv.removeChild(
a.div)}
catch (
b){}
a.map =
null}, getSize:
function(){var
a =
null;
null != this.size && (
a = this.size.clone());
return a}, updateSize:
function(){var
a = this.getCurrentSize();
180 if (
a && !isNaN(
a.h) && !isNaN(
a.w)){this.events.clearMouseCache(); var
b = this.getSize();
null ==
b && (this.size =
b =
a);
if (!
a.equals(
b)){this.size =
a;
a = 0;
for (
b = this.layers.length;
a <
b;
a++)this.layers[
a].onMapResize();
a = this.getCachedCenter();
null != this.baseLayer &&
null !=
a && (
b = this.getZoom(), this.zoom =
null, this.setCenter(
a,
b))}}this.events.triggerEvent(
"updatesize")}, getCurrentSize:
function(){var
a =
new OpenLayers.Size(this.div.clientWidth,
this.div.clientHeight);
if (0 ==
a.w && 0 ==
a.h || isNaN(
a.w) && isNaN(
a.h))
a.w = this.div.offsetWidth,
181 a.h = this.div.offsetHeight;
if (0 ==
a.w && 0 ==
a.h || isNaN(
a.w) && isNaN(
a.h))
a.w = parseInt(this.div.style.width),
a.h = parseInt(this.div.style.height);
return a}, calculateBounds:
function(
a,
b){var
c =
null;
null ==
a && (
a = this.getCachedCenter());
null ==
b && (
b = this.getResolution());
if (
null !=
a &&
null !=
b)var
c = this.size.w *
b / 2,
d = this.size.h *
b / 2,
c =
new OpenLayers.Bounds(
a.lon -
c,
a.lat -
d,
a.lon +
c,
a.lat +
d);
return c}, getCenter:
function(){var
a =
null,
b = this.getCachedCenter();
b && (
a =
b.clone());
return a}, getCachedCenter:
function(){!this.center &&
182 this.size && (this.center = this.getLonLatFromViewPortPx({
x:this.size.w / 2,
y:this.size.h / 2}));
return this.center}, getZoom:
function(){
return this.zoom}, pan:
function(
a,
b,
c){
c =
OpenLayers.Util.applyDefaults(
c, {animate:!0, dragging:!1});
if (
c.dragging)0 ==
a && 0 ==
b || this.moveByPx(
a,
b);
else{var
d = this.getViewPortPxFromLonLat(this.getCachedCenter());
a =
d.add(
a,
b);
if (this.dragging || !
a.equals(
d))
d = this.getLonLatFromViewPortPx(
a),
c.animate?this.panTo(
d):(
this.
moveTo(
d),
this.dragging && (
this.dragging = !1,
this.events.triggerEvent(
"moveend")))}},
183 panTo:function(
a){
if (this.panTween && this.getExtent().scale(this.panRatio).containsLonLat(
a)){var
b = this.getCachedCenter();
if (!
a.equals(
b)){var
b = this.getPixelFromLonLat(
b),
c = this.getPixelFromLonLat(
a),
d = 0,
e = 0; this.panTween.start({
x:0,
y:0}, {
x:
c.x -
b.x,
y:
c.y -
b.y}, this.panDuration, {callbacks:{eachStep:
OpenLayers.Function.bind(
function(
a){this.moveByPx(
a.x -
d,
a.y -
e);
d =
Math.round(
a.x);
e =
Math.round(
a.y)},
this), done:
OpenLayers.
Function.
bind(function(
b){this.
moveTo(a); this.dragging = !1; this.events.triggerEvent(
"moveend")},
184 this)}})}}
else this.setCenter(
a)}, setCenter:
function(
a,
b,
c,
d){this.panTween && this.panTween.stop(); this.zoomTween && this.zoomTween.stop(); this.
moveTo(a,
b, {dragging:
c, forceZoomChange:
d})}, moveByPx:
function(
a,
b){var
c = this.size.w / 2,
d = this.size.h / 2,
e =
c +
a,
f =
d +
b,
g = this.baseLayer.wrapDateLine,
h = 0,
k = 0; this.restrictedExtent && (
h =
c,
k =
d,
g = !1);
a =
g ||
e <= this.maxPx.x -
h &&
e >= this.minPx.x +
h?
Math.round(
a):0;
b =
f <= this.maxPx.y -
k &&
f >= this.minPx.y +
k?
Math.round(
b):0;
if (
a ||
b){this.dragging || (this.dragging = !0, this.events.triggerEvent(
"movestart"));
185 this.center =
null;
a && (this.layerContainerOriginPx.x -=
a, this.minPx.x -=
a, this.maxPx.x -=
a);
b && (this.layerContainerOriginPx.y -=
b, this.minPx.y -=
b, this.maxPx.y -=
b); this.applyTransform();
d = 0;
for (
e = this.layers.length;
d <
e; ++
d)
c = this.layers[
d],
c.visibility && (
c === this.baseLayer ||
c.inRange) && (
c.moveByPx(
a,
b),
c.events.triggerEvent(
"move")); this.events.triggerEvent(
"move")}}, adjustZoom:
function(
a){
if (this.baseLayer && this.baseLayer.wrapDateLine){var
b = this.baseLayer.resolutions,
c = this.getMaxExtent().getWidth() / this.size.w;
186 if (this.getResolutionForZoom(
a) >
c)
if (this.fractionalZoom)
a = this.getZoomForResolution(
c);
else for (var
d =
a | 0,
e =
b.length;
d <
e; ++
d)
if (
b[
d] <=
c){
a =
d;
break}}
return a}, getMinZoom:
function(){
return this.adjustZoom(0)},
moveTo:
function(
a,
b,
c){
null ==
a ||
a instanceof
OpenLayers.LonLat || (
a =
new OpenLayers.LonLat(
a));
c || (
c = {});
null !=
b && (
b = parseFloat(
b), this.fractionalZoom || (
b =
Math.round(
b))); var
d =
b;
b = this.adjustZoom(
b);
b !==
d && (
a = this.getCenter()); var
d =
c.dragging || this.dragging,
e =
c.forceZoomChange; this.getCachedCenter() ||
187 this.isValidLonLat(
a) || (
a = this.maxExtent.getCenterLonLat(), this.center =
a.clone());
if (
null != this.restrictedExtent){
null ==
a && (
a = this.center);
null ==
b && (
b = this.getZoom()); var
f = this.getResolutionForZoom(
b),
f = this.calculateBounds(
a,
f);
if (!this.restrictedExtent.containsBounds(
f)){var
g = this.restrictedExtent.getCenterLonLat();
f.getWidth() > this.restrictedExtent.getWidth()?
a =
new OpenLayers.LonLat(
g.lon,
a.lat):
f.left < this.restrictedExtent.left?
a =
a.add(this.restrictedExtent.left -
f.left, 0):
f.right > this.restrictedExtent.right &&
188 (
a =
a.add(this.restrictedExtent.right -
f.right, 0));
f.getHeight() > this.restrictedExtent.getHeight()?
a =
new OpenLayers.LonLat(
a.lon,
g.lat):
f.bottom < this.restrictedExtent.bottom?
a =
a.add(0, this.restrictedExtent.bottom -
f.bottom):
f.top > this.restrictedExtent.top && (
a =
a.add(0, this.restrictedExtent.top -
f.top))}}
e =
e || this.isValidZoomLevel(
b) &&
b != this.getZoom();
f = this.isValidLonLat(
a) && !
a.equals(this.center);
if (
e ||
f ||
d){
d || this.events.triggerEvent(
"movestart", {zoomChanged:
e});
f && (!
e && this.center && this.centerLayerContainer(
a),
189 this.center =
a.clone());
a =
e?this.getResolutionForZoom(
b):
this.getResolution();
if (
e ||
null == this.layerContainerOrigin){this.layerContainerOrigin = this.getCachedCenter(); this.layerContainerOriginPx.x = 0; this.layerContainerOriginPx.y = 0; this.applyTransform(); var
f = this.getMaxExtent({restricted:!0}),
h =
f.getCenterLonLat(),
g = this.center.lon -
h.lon,
h =
h.lat - this.center.lat,
k =
Math.round(
f.getWidth() /
a),
l =
Math.round(
f.getHeight() /
a); this.minPx = {
x:(this.size.w -
k) / 2 -
g /
a,
y:(
this.size.
h -
l) / 2 -
h /
a}; this.maxPx = {
x:this.minPx.x +
190 Math.round(
f.getWidth() /
a),
y:this.minPx.y +
Math.round(
f.getHeight() /
a)}}
e && (this.zoom =
b, this.resolution =
a);
a = this.getExtent(); this.baseLayer.visibility && (this.baseLayer.moveTo(
a,
e,
c.dragging),
c.dragging ||
this.baseLayer.events.triggerEvent(
"moveend", {zoomChanged:e}));
a = this.baseLayer.getExtent();
for (
b = this.layers.length - 1; 0 <=
b; --
b)
f = this.layers[
b],
f === this.baseLayer ||
f.isBaseLayer || (
g =
f.calculateInRange(),
f.inRange !=
g && ((
f.inRange =
g) ||
f.display(!1),
this.events.triggerEvent(
"changelayer", {layer:f, property:
"visibility"})),
191 g &&
f.visibility && (
f.moveTo(
a,
e,
c.dragging),
c.dragging ||
f.events.triggerEvent(
"moveend", {zoomChanged:e}))); this.events.triggerEvent(
"move");
d || this.events.triggerEvent(
"moveend");
if (
e){
b = 0;
for (
c = this.popups.length;
b <
c;
b++)this.popups[
b].updatePosition(); this.events.triggerEvent(
"zoomend")}}}, centerLayerContainer:
function(
a){var
b = this.getViewPortPxFromLonLat(this.layerContainerOrigin),
c = this.getViewPortPxFromLonLat(
a);
if (
null !=
b &&
null !=
c){var
d = this.layerContainerOriginPx.x;
a = this.layerContainerOriginPx.y;
192 var
e =
Math.round(
b.x -
c.x),
b =
Math.round(
b.y -
c.y); this.applyTransform(this.layerContainerOriginPx.x =
e,
this.layerContainerOriginPx.y =
b);
d -=
e;
a -=
b; this.minPx.x -=
d; this.maxPx.x -=
d; this.minPx.y -=
a; this.maxPx.y -=
a}}, isValidZoomLevel:
function(
a){
return null !=
a && 0 <=
a &&
a < this.getNumZoomLevels()}, isValidLonLat:
function(
a){var
b = !1;
null !=
a && (
b = this.getMaxExtent(),
b =
b.containsLonLat(
a, {worldBounds:this.baseLayer.wrapDateLine &&
b}));
return b}, getProjection:
function(){var
a = this.getProjectionObject();
return a?
a.getCode():
193null}, getProjectionObject:
function(){var
a =
null;
null != this.baseLayer && (
a = this.baseLayer.projection);
return a}, getMaxResolution:
function(){var
a =
null;
null != this.baseLayer && (
a = this.baseLayer.maxResolution);
return a}, getMaxExtent:
function(
a){var
b =
null;
a &&
a.restricted && this.restrictedExtent?
b = this.restrictedExtent:
null != this.baseLayer && (
b = this.baseLayer.maxExtent);
return b}, getNumZoomLevels:
function(){var
a =
null;
null != this.baseLayer && (
a = this.baseLayer.numZoomLevels);
return a}, getExtent:
function(){var
a =
194 null;
null != this.baseLayer && (
a = this.baseLayer.getExtent());
return a}, getResolution:
function(){var
a =
null;
null != this.baseLayer?
a = this.baseLayer.getResolution():!0 === this.allOverlays && 0 < this.layers.length && (
a = this.layers[0].getResolution());
return a}, getUnits:
function(){var
a =
null;
null != this.baseLayer && (
a = this.baseLayer.units);
return a}, getScale:
function(){var
a =
null;
null != this.baseLayer && (
a = this.getResolution(),
a =
OpenLayers.Util.getScaleFromResolution(
a, this.baseLayer.units));
return a}, getZoomForExtent:
function(
a,
195 b){var
c =
null;
null != this.baseLayer && (
c = this.baseLayer.getZoomForExtent(
a,
b));
return c}, getResolutionForZoom:
function(
a){var
b =
null; this.baseLayer && (
b = this.baseLayer.getResolutionForZoom(
a));
return b}, getZoomForResolution:
function(
a,
b){var
c =
null;
null != this.baseLayer && (
c = this.baseLayer.getZoomForResolution(
a,
b));
return c}, zoomTo:
function(
a,
b){var
c =
this;
if (
c.isValidZoomLevel(
a))
if (
c.baseLayer.wrapDateLine && (
a =
c.adjustZoom(
a)),
c.zoomTween){var
d =
c.getResolution(),
e =
c.getResolutionForZoom(
a),
f = {scale:1},
196 d = {scale:
d /
e};
c.zoomTween.playing &&
c.zoomTween.duration < 3 *
c.zoomDuration?
c.zoomTween.finish = {scale:
c.zoomTween.finish.scale *
d.scale}:(
b || (
e =
c.getSize(),
b = {
x:
e.w / 2,
y:
e.h / 2}),
c.zoomTween.start(
f,
d,
c.zoomDuration, {minFrameRate:50, callbacks:{eachStep:function(a){var d = c.layerContainerOriginPx; a = a.scale; c.applyTransform(d.x + ((a - 1) * (d.x - b.x) | 0), d.y + ((a - 1) * (d.y - b.y) | 0), a)}, done:function(a){c.applyTransform(); a = c.getResolution() / a.scale; var d = c.getZoomForResolution(a, !0); c.moveTo(c.getZoomTargetCenter(b,
197 a), d, !0)}}}))}
else f =
b?
c.getZoomTargetCenter(
b,
c.getResolutionForZoom(
a)):
null,
c.setCenter(
f,
a)}, zoomIn:
function(){this.zoomTo(this.getZoom() + 1)}, zoomOut:
function(){this.zoomTo(this.getZoom() - 1)}, zoomToExtent:
function(
a,
b){
a instanceof
OpenLayers.Bounds || (
a =
new OpenLayers.Bounds(
a)); var
c =
a.getCenterLonLat();
if (this.baseLayer.wrapDateLine){
c = this.getMaxExtent();
for (
a =
a.clone();
a.right <
a.left; )
a.right +=
c.getWidth();
c =
a.getCenterLonLat().wrapDateLine(
c)}this.setCenter(
c, this.getZoomForExtent(
a,
b))},
198 zoomToMaxExtent:
function(
a){
a = this.getMaxExtent({restricted:
a?
a.restricted:!0}); this.zoomToExtent(
a)}, zoomToScale:
function(
a,
b){var
c =
OpenLayers.Util.getResolutionFromScale(
a, this.baseLayer.units),
d = this.size.w *
c / 2,
c = this.size.h *
c / 2,
e = this.getCachedCenter(),
d =
new OpenLayers.Bounds(
e.lon -
d,
e.lat -
c,
e.lon +
d,
e.lat +
c); this.zoomToExtent(
d,
b)}, getLonLatFromViewPortPx:
function(
a){var
b =
null;
null != this.baseLayer && (
b = this.baseLayer.getLonLatFromViewPortPx(
a));
return b}, getViewPortPxFromLonLat:
function(
a){var
b =
199 null;
null != this.baseLayer && (
b = this.baseLayer.getViewPortPxFromLonLat(
a));
return b}, getZoomTargetCenter:
function(
a,
b){var
c =
null,
d = this.getSize(),
e =
d.w / 2 -
a.x,
d =
a.y -
d.h / 2,
f = this.getLonLatFromPixel(
a);
f && (
c =
new OpenLayers.LonLat(
f.lon +
e *
b,
f.lat +
d *
b));
return c}, getLonLatFromPixel:
function(
a){
return this.getLonLatFromViewPortPx(
a)}, getPixelFromLonLat:
function(
a){
a = this.getViewPortPxFromLonLat(
a);
a.x =
Math.round(
a.x);
a.y =
Math.round(
a.y);
return a}, getGeodesicPixelSize:
function(
a){var
b =
a?this.getLonLatFromPixel(
a):
200 this.getCachedCenter() || new
OpenLayers.
LonLat(0, 0),
c =
this.getResolution();
a =
b.add( -
c / 2, 0); var
d =
b.add(
c / 2, 0),
e =
b.add(0, -
c / 2),
b =
b.add(0,
c / 2),
c =
new OpenLayers.Projection(
"EPSG:4326"),
f =
this.getProjectionObject() ||
c;
f.equals(
c) || (
a.transform(
f,
c),
d.transform(
f,
c),
e.transform(
f,
c),
b.transform(
f,
c));
return new OpenLayers.Size(
OpenLayers.Util.distVincenty(
a,
d),
OpenLayers.Util.distVincenty(
e,
b))}, getViewPortPxFromLayerPx:
function(
a){var
b =
null;
null !=
a && (
b =
a.add(this.layerContainerOriginPx.x,
this.layerContainerOriginPx.y));
201 return b}, getLayerPxFromViewPortPx:
function(
a){var
b =
null;
null !=
a && (
b =
a.add( - this.layerContainerOriginPx.x, -
this.layerContainerOriginPx.y), isNaN(
b.x) || isNaN(
b.y)) && (
b =
null);
return b}, getLonLatFromLayerPx:
function(
a){
a = this.getViewPortPxFromLayerPx(
a);
return this.getLonLatFromViewPortPx(
a)}, getLayerPxFromLonLat:
function(
a){
a = this.getPixelFromLonLat(
a);
return this.getLayerPxFromViewPortPx(
a)}, applyTransform:
function(
a,
b,
c){
c =
c || 1; var
d = this.layerContainerOriginPx,
e = 1 !==
c;
a =
a ||
d.x;
b =
b ||
d.y; var
f = this.layerContainerDiv.style,
202 g = this.applyTransform.transform,
h = this.applyTransform.template;
if (
void 0 ===
g && (
g =
OpenLayers.Util.vendorPrefix.style(
"transform"),
this.applyTransform.transform =
g)){var
k =
OpenLayers.Element.getStyle(this.viewPortDiv,
OpenLayers.Util.vendorPrefix.css(
"transform"));
k &&
"none" ===
k || (
h = [
"translate3d(",
",0) ",
"scale3d(",
",1)"],
f[
g] = [
h[0],
"0,0",
h[1]].join(
""));
h &&
~f[
g].indexOf(
h[0]) || (
h = [
"translate(",
") ",
"scale(",
")"]); this.applyTransform.template =
h}
null ===
g ||
"translate3d(" !==
h[0] && !0 !==
e?(
f.left =
a +
"px",
f.top =
203 b +
"px",
null !==
g && (
f[
g] =
"")):(!0 ===
e &&
"translate(" ===
h[0] && (
a -=
d.
x,
b -=
d.
y,
f.left =
d.
x +
"px",
f.top =
d.
y +
"px"),
f[
g] = [
h[0],
a,
"px,",
b,
"px",
h[1],
h[2],
c,
",",
c,
h[3]].join(
""))}, CLASS_NAME:
"OpenLayers.Map"});
OpenLayers.Map.TILE_WIDTH = 256;
OpenLayers.Map.TILE_HEIGHT = 256;
OpenLayers.Handler =
OpenLayers.Class({id:
null, control:
null, map:
null, keyMask:
null, active:!1, evt:
null, touch:!1, initialize:
function(
a,
b,
c){
OpenLayers.Util.extend(
this,
c); this.control =
a; this.callbacks =
b; (
a = this.map ||
a.map) && this.setMap(
a); this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, setMap:
function(
a){this.map =
a}, checkModifiers:
function(
a){
return null == this.keyMask?!0:((
a.shiftKey?
OpenLayers.Handler.MOD_SHIFT:0) | (
a.ctrlKey?
OpenLayers.Handler.MOD_CTRL:0) | (
a.altKey?
OpenLayers.Handler.MOD_ALT:
204 0) | (
a.metaKey?
OpenLayers.Handler.MOD_META:0)) == this.keyMask}, activate:
function(){
if (this.active)
return!1;
for (var
a =
OpenLayers.Events.prototype.BROWSER_EVENTS,
b = 0,
c =
a.length;
b <
c;
b++)
this[
a[
b]] && this.
register(a[
b],
this[
a[
b]]);
return this.active = !0}, deactivate:
function(){
if (!this.active)
return!1;
for (var
a =
OpenLayers.Events.prototype.BROWSER_EVENTS,
b = 0,
c =
a.length;
b <
c;
b++)
this[
a[
b]] && this.unregister(
a[
b],
this[
a[
b]]); this.active = this.touch = !1;
return!0}, startTouch:
function(){
if (!this.touch){this.touch = !0;
205 for (var
a =
"mousedown mouseup mousemove click dblclick mouseout".split(
" "),
b = 0,
c =
a.length;
b <
c;
b++)
this[
a[
b]] && this.unregister(
a[
b],
this[
a[
b]])}}, callback:
function(
a,
b){
a && this.callbacks[
a] && this.callbacks[
a].apply(this.control,
b)},
register:
function(
a,
b){this.map.events.registerPriority(
a,
this,
b); this.map.events.registerPriority(
a,
this, this.setEvent)}, unregister:
function(
a,
b){this.map.events.unregister(
a,
this,
b); this.map.events.unregister(
a,
this, this.setEvent)}, setEvent:
function(
a){this.evt =
a;
return!0},
206 destroy:
function(){this.deactivate(); this.control = this.map =
null}, CLASS_NAME:
"OpenLayers.Handler"});
OpenLayers.Handler.MOD_NONE = 0;
OpenLayers.Handler.MOD_SHIFT = 1;
OpenLayers.Handler.MOD_CTRL = 2;
OpenLayers.Handler.MOD_ALT = 4;
OpenLayers.Handler.MOD_META = 8;
OpenLayers.Handler.Click =
OpenLayers.Class(
OpenLayers.Handler, {delay:300, single:!0,
"double":!1, pixelTolerance:0, dblclickTolerance:13, stopSingle:!1, stopDouble:!1, timerId:null, down:null, last:null, first:null, rightclickTimerId:null, touchstart:function(a){this.startTouch(); this.down = this.getEventInfo(a); this.last = this.getEventInfo(a); return!0}, touchmove:
function(
a){this.last = this.getEventInfo(a); return!0}, touchend:
function(
a){this.down && (a.xy = this.last.xy, a.lastTouches = this.last.touches, this.handleSingle(a),
207 this.down = null); return!0}, mousedown:
function(
a){this.down = this.getEventInfo(a); this.last = this.getEventInfo(a); return!0}, mouseup:
function(
a){var b = !0; this.checkModifiers(a) && (this.control.handleRightClicks && OpenLayers.Event.isRightClick(a)) && (b = this.rightclick(a)); return b}, rightclick:
function(
a){if (this.passesTolerance(a)){if (null != this.rightclickTimerId)return this.clearTimer(), this.callback(
"dblrightclick", [a]), !this.stopDouble; a = this[
"double"]?OpenLayers.Util.extend({}, a):this.callback(
"rightclick",
208 [a]); a = OpenLayers.Function.bind(this.delayedRightCall, this, a); this.rightclickTimerId = window.setTimeout(a, this.delay)}
return!
this.stopSingle}, delayedRightCall:
function(
a){this.rightclickTimerId =
null;
a && this.callback(
"rightclick", [
a])}, click:
function(
a){this.last || (this.last = this.getEventInfo(
a)); this.handleSingle(
a);
return!this.stopSingle}, dblclick:
function(
a){this.handleDouble(
a);
return!this.stopDouble}, handleDouble:
function(
a){this.passesDblclickTolerance(
a) && (
this[
"double"] && this.callback(
"dblclick",
209 [
a]), this.clearTimer())}, handleSingle:
function(
a){this.passesTolerance(
a) && (
null != this.timerId?(this.last.touches && 1 === this.last.touches.length && (
this[
"double"] &&
OpenLayers.Event.preventDefault(
a), this.handleDouble(
a)), this.last.touches && 2 ===
this.last.touches.length ||
this.clearTimer()):(
this.first =
this.getEventInfo(
a),
a =
this.single?
OpenLayers.Util.extend({},
a):
null,
this.queuePotentialClick(
a)))}, queuePotentialClick:
function(
a){this.timerId = window.setTimeout(
OpenLayers.Function.bind(
this.delayedCall,
210 this,
a),
this.delay)}, passesTolerance:
function(
a){var
b = !0;
if (
null != this.pixelTolerance && this.down && this.down.xy && (
b =
this.pixelTolerance >=
this.down.xy.distanceTo(
a.xy)) &&
this.touch &&
this.down.touches.length ===
this.last.touches.length){
a = 0;
for (var
c = this.down.touches.length;
a <
c; ++
a)
if (this.getTouchDistance(this.down.touches[
a],
this.last.touches[
a]) >
this.pixelTolerance){
b = !1;
break}}
return b}, getTouchDistance:
function(
a,
b){
return Math.sqrt(
Math.pow(
a.clientX -
b.clientX, 2) +
Math.pow(
a.clientY -
b.clientY,
211 2))}, passesDblclickTolerance:
function(
a){
a = !0; this.down && this.first && (
a = this.down.xy.distanceTo(this.first.xy) <=
this.dblclickTolerance);
return a}, clearTimer:
function(){
null != this.timerId && (window.clearTimeout(this.timerId), this.timerId =
null);
null != this.rightclickTimerId && (window.clearTimeout(this.rightclickTimerId), this.rightclickTimerId =
null)}, delayedCall:
function(
a){this.timerId =
null;
a && this.callback(
"click", [
a])}, getEventInfo:
function(
a){var
b;
if (
a.touches){var
c =
a.touches.length;
b =
Array(
c);
for (var
d,
212 e = 0;
e <
c;
e++)
d =
a.touches[
e],
b[
e] = {clientX:
d.olClientX, clientY:
d.olClientY}}return{xy:
a.xy, touches:
b}}, deactivate:function(){var
a = !1;
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments) && (this.clearTimer(), this.last = this.first = this.down =
null,
a = !0);
return a}, CLASS_NAME:
"OpenLayers.Handler.Click"});
OpenLayers.Handler.Drag =
OpenLayers.Class(
OpenLayers.Handler, {started:!1, stopDown:!0, dragging:!1, last:null, start:null, lastMoveEvt:null, oldOnselectstart:null, interval:0, timeoutId:null, documentDrag:!1, documentEvents:null, initialize:function(
a,
b,
c){
OpenLayers.Handler.prototype.initialize.apply(
this, arguments);
if (!0 === this.documentDrag){var
d =
this; this._docMove =
function(
a){
d.mousemove({xy:{
x:
a.clientX,
y:
a.clientY}, element:
document})}; this._docUp =
function(
a){
d.mouseup({xy:{
x:
a.clientX,
y:
a.clientY}})}}},
213 dragstart:
function(
a){var
b = !0; this.dragging = !1; this.checkModifiers(
a) && (
OpenLayers.Event.isLeftClick(
a) ||
OpenLayers.Event.isSingleTouch(
a))?(this.started = !0, this.last = this.start =
a.xy,
OpenLayers.Element.addClass(this.map.viewPortDiv,
"olDragDown"),
this.down(
a),
this.callback(
"down", [
a.xy]),
OpenLayers.Event.preventDefault(
a),
this.oldOnselectstart || (
this.oldOnselectstart =
document.onselectstart?
document.onselectstart:
OpenLayers.Function.True),
document.onselectstart =
OpenLayers.Function.False,
b = !
this.stopDown):
214 (this.started = !1, this.last = this.start =
null);
return b}, dragmove:
function(
a){this.lastMoveEvt =
a; !this.started || (this.timeoutId ||
a.xy.x == this.last.x &&
a.xy.y == this.last.y) || (!0 === this.documentDrag && this.documentEvents && (
a.element ===
document?(
this.adjustXY(
a),
this.setEvent(
a)):
this.removeDocumentEvents()), 0 <
this.interval && (
this.timeoutId = setTimeout(
OpenLayers.Function.bind(
this.removeTimeout,
this),
this.interval)),
this.dragging = !0,
this.move(
a),
this.callback(
"move", [
a.xy]),
this.oldOnselectstart || (
this.oldOnselectstart =
215 document.onselectstart,
document.onselectstart =
OpenLayers.Function.False),
this.last =
a.xy);
return!0}, dragend:
function(
a){
if (this.started){!0 === this.documentDrag && this.documentEvents && (this.adjustXY(
a), this.removeDocumentEvents()); var
b = this.start != this.last; this.dragging = this.started = !1;
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olDragDown"); this.up(
a); this.callback(
"up", [
a.xy]);
b && this.callback(
"done", [
a.xy]);
document.onselectstart = this.oldOnselectstart}
return!0}, down:
function(
a){}, move:
function(
a){},
216 up:
function(
a){}, out:
function(
a){}, mousedown:
function(
a){
return this.dragstart(
a)}, touchstart:
function(
a){this.startTouch();
return this.dragstart(
a)}, mousemove:
function(
a){
return this.dragmove(
a)}, touchmove:
function(
a){
return this.dragmove(
a)}, removeTimeout:
function(){this.timeoutId =
null; this.dragging && this.mousemove(this.lastMoveEvt)}, mouseup:
function(
a){
return this.dragend(
a)}, touchend:
function(
a){
a.xy = this.last;
return this.dragend(
a)}, mouseout:
function(
a){
if (this.started &&
OpenLayers.Util.mouseLeft(
a,
217 this.map.viewPortDiv))
if (!0 === this.documentDrag)this.addDocumentEvents();
else{var
b = this.start != this.last; this.dragging = this.started = !1;
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olDragDown"); this.out(
a); this.callback(
"out", []);
b && this.callback(
"done", [
a.xy]);
document.onselectstart && (
document.onselectstart = this.oldOnselectstart)}
return!0}, click:
function(
a){
return this.start == this.last}, activate:
function(){var
a = !1;
OpenLayers.Handler.prototype.activate.apply(
this, arguments) && (this.dragging =
218 !1,
a = !0);
return a}, deactivate:
function(){var
a = !1;
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments) && (this.dragging = this.started = !1, this.last = this.start =
null,
a = !0,
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olDragDown"));
return a}, adjustXY:
function(
a){var
b =
OpenLayers.Util.pagePosition(this.map.viewPortDiv);
a.xy.x -=
b[0];
a.xy.y -=
b[1]}, addDocumentEvents:
function(){
OpenLayers.Element.addClass(
document.body,
"olDragDown"); this.documentEvents = !0;
OpenLayers.Event.observe(
document,
"mousemove",
219 this._docMove);
OpenLayers.Event.observe(
document,
"mouseup", this._docUp)}, removeDocumentEvents:
function(){
OpenLayers.Element.removeClass(
document.body,
"olDragDown"); this.documentEvents = !1;
OpenLayers.Event.stopObserving(
document,
"mousemove", this._docMove);
OpenLayers.Event.stopObserving(
document,
"mouseup", this._docUp)}, CLASS_NAME:
"OpenLayers.Handler.Drag"});
OpenLayers.Control.OverviewMap =
OpenLayers.Class(
OpenLayers.Control, {element:null, ovmap:null, size:{
w:180,
h:90}, layers:
null, minRectSize:15, minRectDisplayClass:
"RectReplacement", minRatio:8, maxRatio:32, mapOptions:
null, autoPan:!1, handlers:
null, resolutionFactor:1, maximized:!1, maximizeTitle:
"", minimizeTitle:
"", initialize:
function(
a){this.layers = []; this.handlers = {};
OpenLayers.Control.prototype.initialize.apply(
this, [
a])}, destroy:
function(){this.mapDiv && (this.handlers.click && this.handlers.click.destroy(),
220 this.handlers.drag &&
this.handlers.drag.destroy(),
this.ovmap &&
this.ovmap.viewPortDiv.removeChild(
this.extentRectangle),
this.extentRectangle =
null,
this.rectEvents && (
this.rectEvents.destroy(),
this.rectEvents =
null),
this.ovmap && (
this.ovmap.destroy(),
this.ovmap =
null),
this.element.removeChild(
this.mapDiv),
this.mapDiv =
null,
this.div.removeChild(
this.element),
this.element =
null,
this.maximizeDiv && (
this.div.removeChild(
this.maximizeDiv),
this.maximizeDiv =
null),
this.minimizeDiv && (
this.div.removeChild(
this.minimizeDiv),
221 this.minimizeDiv =
null),
this.map.events.un({buttonclick:this.onButtonClick, moveend:this.update, changebaselayer:this.baseLayerDraw, scope:this}),
OpenLayers.Control.prototype.destroy.apply(
this, arguments))}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments);
if (0 === this.layers.length)
if (this.map.baseLayer)this.layers = [this.map.baseLayer.clone()];
else return this.map.events.register(
"changebaselayer",
this, this.baseLayerDraw), this.div; this.element =
document.createElement(
"div"); this.element.className =
222 this.displayClass +
"Element"; this.element.style.display =
"none"; this.mapDiv =
document.createElement(
"div"); this.mapDiv.style.width = this.size.w +
"px"; this.mapDiv.style.height = this.size.h +
"px"; this.mapDiv.style.position =
"relative"; this.mapDiv.style.overflow =
"hidden"; this.mapDiv.id =
OpenLayers.Util.createUniqueID(
"overviewMap"); this.extentRectangle =
document.createElement(
"div"); this.extentRectangle.style.position =
"absolute"; this.extentRectangle.style.zIndex = 1E3; this.extentRectangle.className = this.displayClass +
223 "ExtentRectangle"; this.element.appendChild(this.mapDiv); this.div.appendChild(this.element);
if (this.outsideViewport)this.element.style.display =
"";
else{this.div.className +=
" " + this.displayClass +
"Container"; var
a =
OpenLayers.Util.getImageLocation(
"layer-switcher-maximize.png"); this.maximizeDiv =
OpenLayers.Util.createAlphaImageDiv(this.displayClass +
"MaximizeButton",
null,
null,
a,
"absolute"); this.maximizeDiv.style.display =
"none"; this.maximizeDiv.className = this.displayClass +
"MaximizeButton olButton"; this.maximizeTitle &&
224 (this.maximizeDiv.title = this.maximizeTitle); this.div.appendChild(this.maximizeDiv);
a =
OpenLayers.Util.getImageLocation(
"layer-switcher-minimize.png"); this.minimizeDiv =
OpenLayers.Util.createAlphaImageDiv(
"OpenLayers_Control_minimizeDiv",
null,
null,
a,
"absolute"); this.minimizeDiv.style.display =
"none"; this.minimizeDiv.className = this.displayClass +
"MinimizeButton olButton"; this.minimizeTitle && (this.minimizeDiv.title = this.minimizeTitle); this.div.appendChild(this.minimizeDiv); this.minimizeControl()}this.map.getExtent() &&
225 this.
update(); this.map.events.on({
buttonclick:this.onButtonClick, moveend:this.
update, scope:
this}); this.maximized && this.maximizeControl();
return this.div}, baseLayerDraw:
function(){this.draw(); this.map.events.unregister(
"changebaselayer",
this, this.baseLayerDraw)}, rectDrag:
function(
a){var
b = this.handlers.drag.last.x -
a.x,
c = this.handlers.drag.last.y -
a.y;
if (0 !=
b || 0 !=
c){var
d = this.rectPxBounds.top,
e = this.rectPxBounds.left;
a =
Math.abs(this.rectPxBounds.getHeight()); var
f = this.rectPxBounds.getWidth(),
c =
Math.max(0,
226 d -
c),
c =
Math.min(
c, this.ovmap.size.h -
this.hComp -
a),
b =
Math.max(0,
e -
b),
b =
Math.min(
b, this.ovmap.size.w -
this.wComp -
f); this.setRectPxBounds(
new OpenLayers.Bounds(
b,
c +
a,
b +
f,
c))}}, mapDivClick:
function(
a){var
b = this.rectPxBounds.getCenterPixel(),
c =
a.xy.x -
b.x,
d =
a.xy.y -
b.y,
e = this.rectPxBounds.top,
f = this.rectPxBounds.left;
a =
Math.abs(this.rectPxBounds.getHeight());
b = this.rectPxBounds.getWidth();
d =
Math.max(0,
e +
d);
d =
Math.min(
d, this.ovmap.size.h -
a);
c =
Math.max(0,
f +
c);
c =
Math.min(
c, this.ovmap.size.w -
b); this.setRectPxBounds(
new OpenLayers.Bounds(
c,
227 d +
a,
c +
b,
d)); this.updateMapToRect()}, onButtonClick:
function(
a){
a.buttonElement === this.minimizeDiv?this.minimizeControl():
a.buttonElement ===
this.maximizeDiv &&
this.maximizeControl()}, maximizeControl:function(
a){this.element.style.display =
""; this.showToggle(!1);
null !=
a &&
OpenLayers.Event.stop(
a)}, minimizeControl:
function(
a){this.element.style.display =
"none"; this.showToggle(!0);
null !=
a &&
OpenLayers.Event.stop(
a)}, showToggle:
function(
a){this.maximizeDiv && (this.maximizeDiv.style.display =
a?
"":
"none"); this.minimizeDiv &&
228 (this.minimizeDiv.style.display =
a?
"none":
"")},
update:
function(){
null == this.ovmap && this.createMap(); !this.autoPan && this.isSuitableOverview() || this.updateOverview(); this.updateRectToMap()}, isSuitableOverview:
function(){var
a = this.map.getExtent(),
b = this.map.getMaxExtent(),
a =
new OpenLayers.Bounds(
Math.max(
a.left,
b.left),
Math.max(
a.bottom,
b.bottom),
Math.min(
a.right,
b.right),
Math.min(
a.top,
b.top)); this.ovmap.getProjection() != this.map.getProjection() && (
a =
a.transform(this.map.getProjectionObject(),
this.ovmap.getProjectionObject()));
229 b = this.ovmap.getResolution() / this.map.getResolution();
return b > this.minRatio &&
b <= this.maxRatio && this.ovmap.getExtent().containsBounds(
a)}, updateOverview:
function(){var
a = this.map.getResolution(),
b = this.ovmap.getResolution(),
c =
b /
a;
c > this.maxRatio?
b = this.minRatio *
a:
c <= this.minRatio && (
b = this.maxRatio *
a); this.ovmap.getProjection() != this.map.getProjection()?(
a = this.map.center.clone(),
a.transform(
this.map.getProjectionObject(),
this.ovmap.getProjectionObject())):
a = this.map.center; this.ovmap.setCenter(
a,
230 this.ovmap.getZoomForResolution(
b *
this.resolutionFactor)); this.updateRectToMap()}, createMap:
function(){var
a =
OpenLayers.Util.extend({controls:[], maxResolution:
"auto", fallThrough:!1}, this.mapOptions); this.ovmap =
new OpenLayers.Map(this.mapDiv,
a); this.ovmap.viewPortDiv.appendChild(this.extentRectangle);
OpenLayers.Event.stopObserving(window,
"unload", this.ovmap.unloadDestroy); this.ovmap.addLayers(this.layers); this.ovmap.zoomToMaxExtent(); this.wComp = (this.wComp = parseInt(
OpenLayers.Element.getStyle(
this.extentRectangle,
231 "border-left-width")) + parseInt(
OpenLayers.Element.getStyle(
this.extentRectangle,
"border-right-width")))?this.wComp:2; this.hComp = (this.hComp = parseInt(
OpenLayers.Element.getStyle(
this.extentRectangle,
"border-top-width")) + parseInt(
OpenLayers.Element.getStyle(
this.extentRectangle,
"border-bottom-width")))?this.hComp:2; this.handlers.drag =
new OpenLayers.Handler.Drag(
this, {move:this.rectDrag, done:this.updateMapToRect}, {map:this.ovmap}); this.handlers.click =
new OpenLayers.Handler.Click(
this, {click:this.mapDivClick},
232{single:!0,
"double":!1, stopSingle:!0, stopDouble:!0, pixelTolerance:1, map:this.ovmap}); this.handlers.click.activate(); this.rectEvents =
new OpenLayers.Events(
this, this.extentRectangle,
null, !0); this.rectEvents.register(
"mouseover",
this,
function(
a){this.handlers.drag.active || this.map.dragging || this.handlers.drag.activate()}); this.rectEvents.register(
"mouseout",
this,
function(
a){this.handlers.drag.dragging || this.handlers.drag.deactivate()});
if (this.ovmap.getProjection() !=
this.map.getProjection()){var
a = this.map.getProjectionObject().getUnits() ||
233 this.map.units || this.map.baseLayer.units,
b = this.ovmap.getProjectionObject().getUnits() || this.ovmap.units || this.ovmap.baseLayer.units; this.resolutionFactor =
a &&
b?
OpenLayers.INCHES_PER_UNIT[
a] /
OpenLayers.INCHES_PER_UNIT[
b]:1}}, updateRectToMap:
function(){var
a;
a = this.ovmap.getProjection() != this.map.getProjection()?this.map.getExtent().transform(this.map.getProjectionObject(),
this.ovmap.getProjectionObject()):this.map.getExtent(); (
a = this.getRectBoundsFromMapBounds(
a)) && this.setRectPxBounds(
a)}, updateMapToRect:
function(){var
a =
234 this.getMapBoundsFromRectBounds(this.rectPxBounds); this.ovmap.getProjection() != this.map.getProjection() && (
a =
a.transform(this.ovmap.getProjectionObject(),
this.map.getProjectionObject())); this.map.panTo(
a.getCenterLonLat())}, setRectPxBounds:
function(
a){var
b =
Math.max(
a.top, 0),
c =
Math.max(
a.left, 0),
d =
Math.min(
a.top +
Math.abs(
a.getHeight()),
this.ovmap.size.h -
this.hComp);
a =
Math.min(
a.left +
a.getWidth(),
this.ovmap.size.w -
this.wComp); var
e =
Math.max(
a -
c, 0),
f =
Math.max(
d -
b, 0);
e < this.minRectSize ||
f < this.minRectSize?
235 (this.extentRectangle.className = this.displayClass + this.minRectDisplayClass,
e =
c +
e / 2 - this.minRectSize / 2, this.extentRectangle.style.top =
Math.round(
b +
f / 2 - this.minRectSize / 2) +
"px", this.extentRectangle.style.left =
Math.round(
e) +
"px",
this.extentRectangle.style.height =
this.minRectSize +
"px",
this.extentRectangle.style.width =
this.minRectSize +
"px"):(
this.extentRectangle.className =
this.displayClass +
"ExtentRectangle",
this.extentRectangle.
style.top =
Math.
round(
b) +
"px",
this.extentRectangle.
style.left =
Math.
round(
c) +
236 "px",
this.extentRectangle.
style.height =
Math.
round(
f) +
"px",
this.extentRectangle.
style.width =
Math.
round(
e) +
"px"); this.rectPxBounds =
new OpenLayers.Bounds(
Math.round(
c),
Math.round(
d),
Math.round(
a),
Math.round(
b))}, getRectBoundsFromMapBounds:
function(
a){var
b = this.getOverviewPxFromLonLat({lon:
a.left, lat:
a.bottom});
a = this.getOverviewPxFromLonLat({lon:
a.right, lat:
a.top}); var
c =
null;
b &&
a && (
c =
new OpenLayers.Bounds(
b.x,
b.y,
a.x,
a.y));
return c}, getMapBoundsFromRectBounds:
function(
a){var
b = this.getLonLatFromOverviewPx({
x:
a.left,
237 y:
a.bottom});
a = this.getLonLatFromOverviewPx({
x:
a.right,
y:
a.top});
return new OpenLayers.Bounds(
b.lon,
b.lat,
a.lon,
a.lat)}, getLonLatFromOverviewPx:
function(
a){var
b = this.ovmap.size,
c = this.ovmap.getResolution(),
d = this.ovmap.getExtent().getCenterLonLat();
return{lon:
d.lon + (
a.x -
b.w / 2) *
c, lat:
d.lat - (
a.
y -
b.
h / 2) *
c}}, getOverviewPxFromLonLat:function(
a){var
b = this.ovmap.getResolution(),
c = this.ovmap.getExtent();
if (
c)
return{
x:
Math.round(1 /
b * (
a.lon -
c.left)),
y:
Math.round(1 /
b * (
c.top -
a.lat))}}, CLASS_NAME:
"OpenLayers.Control.OverviewMap"});
OpenLayers.Layer =
OpenLayers.Class({id:
null, name:
null, div:
null, opacity:1, alwaysInRange:
null, RESOLUTION_PROPERTIES:
"scales resolutions maxScale minScale maxResolution minResolution numZoomLevels maxZoomLevel".split(
" "), events:
null, map:
null, isBaseLayer:!1, alpha:!1, displayInLayerSwitcher:!0, visibility:!0, attribution:
null, inRange:!1, imageSize:
null, options:
null, eventListeners:
null, gutter:0, projection:
null, units:
null, scales:
null, resolutions:
null, maxExtent:
null, minExtent:
null, maxResolution:
null, minResolution:
null,
238 numZoomLevels:
null, minScale:
null, maxScale:
null, displayOutsideMaxExtent:!1, wrapDateLine:!1, metadata:
null, initialize:
function(
a,
b){this.metadata = {};
b =
OpenLayers.Util.extend({},
b);
null != this.alwaysInRange && (
b.alwaysInRange = this.alwaysInRange); this.addOptions(
b); this.name =
a;
if (
null == this.
id && (this.
id =
OpenLayers.Util.createUniqueID(
this.CLASS_NAME +
"_"),
this.div =
OpenLayers.Util.createDiv(
this.id),
this.div.style.width =
"100%",
this.div.style.height =
"100%",
this.div.dir =
"ltr",
this.events =
new OpenLayers.Events(
this,
239 this.div),
this.eventListeners instanceof Object))this.events.on(this.eventListeners)}, destroy:
function(
a){
null ==
a && (
a = !0);
null != this.map && this.map.removeLayer(
this,
a); this.options = this.div = this.name = this.map = this.projection =
null; this.events && (this.eventListeners && this.events.un(this.eventListeners), this.events.destroy()); this.events = this.eventListeners =
null},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer(this.name, this.getOptions()));
OpenLayers.Util.applyDefaults(
a,
this);
a.map =
null;
return a},
240 getOptions:
function(){var
a = {},
b;
for (
b in this.options)
a[
b] =
this[
b];
return a}, setName:
function(
a){
a != this.name && (this.name =
a,
null != this.map && this.map.events.triggerEvent(
"changelayer", {layer:
this, property:
"name"}))}, addOptions:
function(
a,
b){
null == this.options && (this.options = {});
a && (
"string" == typeof
a.projection && (
a.projection =
new OpenLayers.Projection(
a.projection)),
a.projection &&
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Projection.defaults[
a.projection.getCode()]), !
a.maxExtent ||
a.maxExtent instanceof
241 OpenLayers.Bounds || (
a.maxExtent =
new OpenLayers.Bounds(
a.maxExtent)), !
a.minExtent ||
a.minExtent instanceof
OpenLayers.Bounds || (
a.minExtent =
new OpenLayers.Bounds(
a.minExtent)));
OpenLayers.Util.extend(this.options,
a);
OpenLayers.Util.extend(
this,
a); this.projection && this.projection.getUnits() && (this.units = this.projection.getUnits());
if (this.map){var
c = this.map.getResolution(),
d = this.RESOLUTION_PROPERTIES.concat([
"projection",
"units",
"minExtent",
"maxExtent"]),
e;
for (
e in
a)
if (
a.hasOwnProperty(
e) && 0 <=
OpenLayers.Util.indexOf(
d,
242 e)){this.initResolutions();
b && this.map.baseLayer ===
this && (this.map.setCenter(this.map.getCenter(),
this.map.getZoomForResolution(
c), !1, !0),
this.map.events.triggerEvent(
"changebaselayer", {layer:this}));
break}}}, onMapResize:
function(){}, redraw:
function(){var
a = !1;
if (this.map){this.inRange = this.calculateInRange(); var
b = this.getExtent();
b && (this.inRange && this.visibility) && (this.
moveTo(b, !0, !1), this.events.triggerEvent(
"moveend", {zoomChanged:!0}),
a = !0)}
return a},
moveTo:
function(
a,
b,
c){
a = this.visibility;
243 this.isBaseLayer || (
a =
a && this.inRange); this.display(
a)}, moveByPx:
function(
a,
b){}, setMap:
function(
a){
null == this.map && (this.map =
a, this.maxExtent = this.maxExtent || this.map.maxExtent, this.minExtent = this.minExtent || this.map.minExtent, this.projection = this.projection || this.map.projection,
"string" == typeof this.projection && (this.projection =
new OpenLayers.Projection(this.projection)), this.units = this.projection.getUnits() ||
this.units ||
this.map.units,
this.initResolutions(),
this.isBaseLayer || (
this.inRange =
this.calculateInRange(),
244 this.div.style.display =
this.visibility &&
this.inRange?
"":
"none"),
this.setTileSize())}, afterAdd:
function(){}, removeMap:
function(
a){}, getImageSize:
function(
a){
return this.imageSize || this.tileSize}, setTileSize:
function(
a){this.tileSize =
a =
a?
a:this.tileSize?this.tileSize:this.map.getTileSize(); this.gutter && (this.imageSize =
new OpenLayers.Size(
a.w + 2 *
this.gutter,
a.h + 2 *
this.gutter))}, getVisibility:
function(){
return this.visibility}, setVisibility:
function(
a){
a != this.visibility && (this.visibility =
a, this.display(
a),
245 this.redraw(),
null != this.map && this.map.events.triggerEvent(
"changelayer", {layer:
this, property:
"visibility"}), this.events.triggerEvent(
"visibilitychanged"))}, display:
function(
a){
a != (
"none" != this.div.style.display) && (this.div.style.display =
a &&
this.calculateInRange()?
"block":
"none")}, calculateInRange:
function(){var
a = !1; this.alwaysInRange?
a = !0:this.map && (
a = this.map.getResolution(),
a =
a >= this.minResolution &&
a <= this.maxResolution);
return a}, setIsBaseLayer:
function(
a){
a != this.isBaseLayer && (this.isBaseLayer =
246 a,
null != this.map && this.map.events.triggerEvent(
"changebaselayer", {layer:
this}))}, initResolutions:
function(){var
a,
b,
c,
d = {},
e = !0;
a = 0;
for (
b = this.RESOLUTION_PROPERTIES.length;
a <
b;
a++)
c = this.RESOLUTION_PROPERTIES[
a],
d[
c] = this.options[
c],
e && this.options[
c] && (
e = !1);
null == this.options.alwaysInRange && (this.alwaysInRange =
e);
null ==
d.resolutions && (
d.resolutions = this.resolutionsFromScales(
d.scales));
null ==
d.resolutions && (
d.resolutions = this.calculateResolutions(
d));
if (
null ==
d.resolutions){
a = 0;
for (
b = this.RESOLUTION_PROPERTIES.length;
a <
247 b;
a++)
c = this.RESOLUTION_PROPERTIES[
a],
d[
c] =
null != this.options[
c]?this.options[
c]:this.map[
c];
null ==
d.resolutions && (
d.resolutions = this.resolutionsFromScales(
d.scales));
null ==
d.resolutions && (
d.resolutions = this.calculateResolutions(
d))}var
f; this.options.maxResolution &&
"auto" !== this.options.maxResolution && (
f = this.options.maxResolution); this.options.minScale && (
f =
OpenLayers.Util.getResolutionFromScale(this.options.minScale,
this.units)); var
g; this.options.minResolution &&
"auto" !== this.options.minResolution &&
248 (
g = this.options.minResolution); this.options.maxScale && (
g =
OpenLayers.Util.getResolutionFromScale(this.options.maxScale,
this.units));
d.resolutions && (
d.resolutions.sort(
function(
a,
b){
return b -
a}),
f || (
f =
d.resolutions[0]),
g || (
g =
d.resolutions[
d.resolutions.length - 1]));
if (this.resolutions =
d.resolutions){
b = this.resolutions.length; this.scales =
Array(
b);
for (
a = 0;
a <
b;
a++)this.scales[
a] =
OpenLayers.Util.getScaleFromResolution(
this.resolutions[
a],
this.units); this.numZoomLevels =
b}
if (this.minResolution =
g)this.maxScale =
249 OpenLayers.Util.getScaleFromResolution(
g, this.units);
if (this.maxResolution =
f)this.minScale =
OpenLayers.Util.getScaleFromResolution(
f, this.units)}, resolutionsFromScales:
function(
a){
if (
null !=
a){var
b,
c,
d;
d =
a.length;
b =
Array(
d);
for (
c = 0;
c <
d;
c++)
b[
c] =
OpenLayers.Util.getResolutionFromScale(
a[
c],
this.units);
return b}}, calculateResolutions:
function(
a){var
b,
c,
d =
a.maxResolution;
null !=
a.minScale?
d =
OpenLayers.Util.getResolutionFromScale(
a.minScale,
this.units):
"auto" ==
d &&
null != this.maxExtent && (
b = this.map.getSize(),
250 c = this.maxExtent.getWidth() /
b.w,
b =
this.maxExtent.getHeight() /
b.h,
d =
Math.max(
c,
b));
c =
a.minResolution;
null !=
a.maxScale?
c =
OpenLayers.Util.getResolutionFromScale(
a.maxScale,
this.units):
"auto" ==
a.minResolution &&
null != this.minExtent && (
b = this.map.getSize(),
c = this.minExtent.getWidth() /
b.w,
b =
this.minExtent.getHeight() /
b.h,
c =
Math.max(
c,
b));
"number" !== typeof
d && (
"number" !== typeof
c &&
null != this.maxExtent) && (
d = this.map.getTileSize(),
d =
Math.max(
this.maxExtent.getWidth() /
d.w,
this.maxExtent.getHeight() /
d.h));
b =
a.maxZoomLevel;
251 a =
a.numZoomLevels;
"number" === typeof
c &&
"number" === typeof
d &&
void 0 ===
a?
a =
Math.floor(
Math.log(
d /
c) /
Math.log(2)) + 1:
void 0 ===
a &&
null !=
b && (
a =
b + 1);
if (!(
"number" !== typeof
a || 0 >=
a ||
"number" !== typeof
d &&
"number" !== typeof
c)){
b =
Array(
a); var
e = 2;
"number" == typeof
c &&
"number" == typeof
d && (
e =
Math.pow(
d /
c, 1 / (
a - 1))); var
f;
if (
"number" === typeof
d)
for (
f = 0;
f <
a;
f++)
b[
f] =
d /
Math.pow(
e,
f);
else for (
f = 0;
f <
a;
f++)
b[
a - 1 -
f] =
c *
Math.pow(
e,
f);
return b}}, getResolution:
function(){var
a = this.map.getZoom();
return this.getResolutionForZoom(
a)},
252 getExtent:
function(){
return this.map.calculateBounds()}, getZoomForExtent:
function(
a,
b){var
c = this.map.getSize(),
c =
Math.max(
a.getWidth() /
c.w,
a.getHeight() /
c.h);
return this.getZoomForResolution(
c,
b)}, getDataExtent:
function(){}, getResolutionForZoom:
function(
a){
a =
Math.max(0,
Math.min(
a,
this.resolutions.length - 1));
if (this.map.fractionalZoom){var
b =
Math.floor(
a),
c =
Math.ceil(
a);
a = this.resolutions[
b] - (
a -
b) * (this.resolutions[
b] - this.resolutions[
c])}
else a = this.resolutions[
Math.round(
a)];
return a}, getZoomForResolution:
function(
a,
253 b){var
c,
d;
if (this.map.fractionalZoom){var
e = 0,
f = this.resolutions[
e],
g = this.resolutions[this.resolutions.length - 1],
h;
c = 0;
for (
d = this.resolutions.length;
c <
d; ++
c)
if (
h = this.resolutions[
c],
h >=
a && (
f =
h,
e =
c),
h <=
a){
g =
h;
break}
c =
f -
g;
c = 0 <
c?
e + (
f -
a) /
c:
e}
else{
f =
Number.POSITIVE_INFINITY;
c = 0;
for (
d = this.resolutions.length;
c <
d;
c++)
if (
b){
e =
Math.abs(this.resolutions[
c] -
a);
if (
e >
f)
break;
f =
e}
else if (this.resolutions[
c] <
a)
break;
c =
Math.max(0,
c - 1)}
return c}, getLonLatFromViewPortPx:
function(
a){var
b =
null,
c = this.map;
if (
null !=
254 a &&
c.minPx){var
b =
c.getResolution(),
d =
c.getMaxExtent({restricted:!0}),
b =
new OpenLayers.LonLat((
a.x -
c.minPx.x) *
b +
d.left, (
c.minPx.y -
a.y) *
b +
d.top); this.wrapDateLine && (
b =
b.wrapDateLine(this.maxExtent))}
return b}, getViewPortPxFromLonLat:
function(
a,
b){var
c =
null;
null !=
a && (
b =
b || this.map.getResolution(),
c = this.map.calculateBounds(
null,
b),
c =
new OpenLayers.Pixel(1 /
b * (
a.lon -
c.left), 1 /
b * (
c.top -
a.lat)));
return c}, setOpacity:
function(
a){
if (
a != this.opacity){this.opacity =
a;
for (var
b = this.div.childNodes,
c = 0,
d =
b.length;
c <
255 d; ++
c){var
e =
b[
c].firstChild ||
b[
c],
f =
b[
c].lastChild;
f &&
"iframe" ===
f.nodeName.toLowerCase() && (
e =
f.parentNode);
OpenLayers.Util.modifyDOMElement(
e,
null,
null,
null,
null,
null,
null,
a)}
null != this.map && this.map.events.triggerEvent(
"changelayer", {layer:
this, property:
"opacity"})}}, getZIndex:
function(){
return this.div.style.zIndex}, setZIndex:
function(
a){this.div.style.zIndex =
a}, adjustBounds:
function(
a){
if (this.gutter){var
b = this.gutter * this.map.getResolution();
a =
new OpenLayers.Bounds(
a.left -
b,
a.bottom -
b,
a.right +
256 b,
a.top +
b)}this.wrapDateLine && (
b = {rightTolerance:this.getResolution(), leftTolerance:this.getResolution()},
a =
a.wrapDateLine(this.maxExtent,
b));
return a}, CLASS_NAME:
"OpenLayers.Layer"});
OpenLayers.Layer.SphericalMercator = {getExtent:
function(){var
a =
null;
return a = this.sphericalMercator?this.map.calculateBounds():
OpenLayers.Layer.FixedZoomLevels.prototype.getExtent.apply(
this)}, getLonLatFromViewPortPx:
function(
a){
return OpenLayers.Layer.prototype.getLonLatFromViewPortPx.apply(
this, arguments)}, getViewPortPxFromLonLat:
function(
a){
return OpenLayers.Layer.prototype.getViewPortPxFromLonLat.apply(
this, arguments)}, initMercatorParameters:
function(){this.RESOLUTIONS = [];
for (var
a = 0;
a <= this.MAX_ZOOM_LEVEL; ++
a)this.RESOLUTIONS[
a] =
257 156543.03390625 /
Math.pow(2,
a); this.units =
"m"; this.projection = this.projection ||
"EPSG:900913"}, forwardMercator:
function(){var
a =
new OpenLayers.Projection(
"EPSG:4326"),
b =
new OpenLayers.Projection(
"EPSG:900913");
return function(
c,
d){var
e =
OpenLayers.Projection.transform({
x:
c,
y:
d},
a,
b);
return new OpenLayers.LonLat(
e.x,
e.y)}}(), inverseMercator:function(){var
a =
new OpenLayers.Projection(
"EPSG:4326"),
b =
new OpenLayers.Projection(
"EPSG:900913");
return function(
c,
d){var e = OpenLayers.Projection.transform({x:c,
258 y:d},
b,
a);
return new OpenLayers.LonLat(
e.x,
e.y)}}()};
OpenLayers.Layer.EventPane =
OpenLayers.Class(
OpenLayers.Layer, {smoothDragPan:!0, isBaseLayer:!0, isFixed:!0, pane:null, mapObject:null, initialize:function(
a,
b){
OpenLayers.Layer.prototype.initialize.apply(
this, arguments);
null == this.pane && (this.pane =
OpenLayers.Util.createDiv(this.div.id +
"_EventPane"))}, destroy:
function(){this.pane = this.mapObject =
null;
OpenLayers.Layer.prototype.destroy.apply(
this, arguments)}, setMap:
function(
a){
OpenLayers.Layer.prototype.setMap.apply(
this, arguments); this.pane.style.zIndex =
259 parseInt(this.div.style.zIndex) + 1; this.pane.style.display = this.div.style.display; this.pane.style.width =
"100%"; this.pane.style.height =
"100%";
"msie" ==
OpenLayers.BROWSER_NAME && (this.pane.style.background =
"url(" +
OpenLayers.Util.getImageLocation(
"blank.gif") +
")"); this.isFixed?this.map.viewPortDiv.appendChild(this.pane):this.map.layerContainerDiv.appendChild(this.pane); this.loadMapObject();
null == this.mapObject && this.loadWarningMessage()}, removeMap:
function(
a){this.pane && this.pane.parentNode && this.pane.parentNode.removeChild(this.pane);
260 OpenLayers.Layer.prototype.removeMap.apply(
this, arguments)}, loadWarningMessage:
function(){this.div.style.backgroundColor =
"darkblue"; var
a = this.map.getSize(),
b =
Math.min(
a.w, 300),
c =
Math.min(
a.h, 200),
b =
new OpenLayers.Size(
b,
c),
a = (
new OpenLayers.Pixel(
a.w / 2,
a.h / 2)).add( -
b.w / 2, -
b.h / 2),
a =
OpenLayers.Util.createDiv(this.name +
"_warning",
a,
b,
null,
null,
null,
"auto");
a.style.padding =
"7px";
a.style.backgroundColor =
"yellow";
a.innerHTML = this.getWarningHTML(); this.div.appendChild(
a)}, getWarningHTML:
function(){
return""},
261 display:
function(
a){
OpenLayers.Layer.prototype.display.apply(
this, arguments); this.pane.style.display = this.div.style.display}, setZIndex:
function(
a){
OpenLayers.Layer.prototype.setZIndex.apply(
this, arguments); this.pane.style.zIndex = parseInt(this.div.style.zIndex) + 1}, moveByPx:
function(
a,
b){
OpenLayers.Layer.prototype.moveByPx.apply(
this, arguments); this.dragPanMapObject?this.dragPanMapObject(
a, -
b):
this.
moveTo(
this.map.getCachedCenter())},
moveTo:function(
a,
b,
c){
OpenLayers.Layer.prototype.moveTo.apply(
this,
262 arguments);
if (
null != this.mapObject){var
d = this.map.getCenter(),
e = this.map.getZoom();
if (
null !=
d){var
f = this.getMapObjectCenter(),
f = this.getOLLonLatFromMapObjectLonLat(
f),
g = this.getMapObjectZoom(),
g = this.getOLZoomFromMapObjectZoom(
g);
d.equals(
f) &&
e ==
g || (!
b &&
f && this.dragPanMapObject && this.smoothDragPan?(
e = this.map.getViewPortPxFromLonLat(
f),
d = this.map.getViewPortPxFromLonLat(
d),
this.dragPanMapObject(
d.x -
e.x,
e.y -
d.y)):(
d =
this.getMapObjectLonLatFromOLLonLat(
d),
e =
this.getMapObjectZoomFromOLZoom(
e),
this.setMapObjectCenter(
d,
263 e,
c)))}}}, getLonLatFromViewPortPx:
function(
a){var
b =
null;
null != this.mapObject &&
null != this.getMapObjectCenter() && (
a = this.getMapObjectPixelFromOLPixel(
a),
a = this.getMapObjectLonLatFromMapObjectPixel(
a),
b = this.getOLLonLatFromMapObjectLonLat(
a));
return b}, getViewPortPxFromLonLat:
function(
a){var
b =
null;
null != this.mapObject &&
null != this.getMapObjectCenter() && (
a = this.getMapObjectLonLatFromOLLonLat(
a),
a = this.getMapObjectPixelFromMapObjectLonLat(
a),
b = this.getOLPixelFromMapObjectPixel(
a));
return b}, getOLLonLatFromMapObjectLonLat:
function(
a){var
b =
264 null;
null !=
a && (
b = this.getLongitudeFromMapObjectLonLat(
a),
a = this.getLatitudeFromMapObjectLonLat(
a),
b =
new OpenLayers.LonLat(
b,
a));
return b}, getMapObjectLonLatFromOLLonLat:
function(
a){var
b =
null;
null !=
a && (
b = this.getMapObjectLonLatFromLonLat(
a.lon,
a.lat));
return b}, getOLPixelFromMapObjectPixel:
function(
a){var
b =
null;
null !=
a && (
b = this.getXFromMapObjectPixel(
a),
a = this.getYFromMapObjectPixel(
a),
b =
new OpenLayers.Pixel(
b,
a));
return b}, getMapObjectPixelFromOLPixel:
function(
a){var
b =
null;
null !=
a && (
b = this.getMapObjectPixelFromXY(
a.x,
265 a.y));
return b}, CLASS_NAME:
"OpenLayers.Layer.EventPane"});
OpenLayers.Layer.FixedZoomLevels =
OpenLayers.Class({initialize:
function(){}, initResolutions:
function(){
for (var
a = [
"minZoomLevel",
"maxZoomLevel",
"numZoomLevels"],
b = 0,
c =
a.length;
b <
c;
b++){var
d =
a[
b];
this[
d] =
null != this.options[
d]?this.options[
d]:this.map[
d]}
if (
null == this.minZoomLevel || this.minZoomLevel < this.MIN_ZOOM_LEVEL)this.minZoomLevel = this.MIN_ZOOM_LEVEL;
a = this.MAX_ZOOM_LEVEL - this.minZoomLevel + 1;
b =
null == this.options.numZoomLevels &&
null != this.options.maxZoomLevel ||
null == this.numZoomLevels &&
null != this.maxZoomLevel?
266 this.maxZoomLevel - this.minZoomLevel + 1:this.numZoomLevels; this.numZoomLevels =
null !=
b?
Math.min(
b,
a):
a; this.maxZoomLevel = this.minZoomLevel + this.numZoomLevels - 1;
if (
null != this.RESOLUTIONS){
a = 0; this.resolutions = [];
for (
b = this.minZoomLevel;
b <= this.maxZoomLevel;
b++)this.resolutions[
a++] = this.RESOLUTIONS[
b]; this.maxResolution = this.resolutions[0]; this.minResolution = this.resolutions[this.resolutions.length - 1]}}, getResolution:
function(){
if (
null != this.resolutions)
return OpenLayers.Layer.prototype.getResolution.apply(
this,
267 arguments); var
a =
null,
b = this.map.getSize(),
c = this.getExtent();
null !=
b &&
null !=
c && (
a =
Math.max(
c.getWidth() /
b.w,
c.getHeight() /
b.h));
return a}, getExtent:
function(){var
a = this.map.getSize(),
b = this.getLonLatFromViewPortPx({
x:0,
y:0}),
a = this.getLonLatFromViewPortPx({
x:
a.w,
y:
a.h});
return null !=
b &&
null !=
a?
new OpenLayers.Bounds(
b.lon,
a.lat,
a.lon,
b.lat):
null}, getZoomForResolution:
function(
a){
if (
null != this.resolutions)
return OpenLayers.Layer.prototype.getZoomForResolution.apply(
this, arguments); var
b =
OpenLayers.Layer.prototype.getExtent.apply(
this,
268[]);
return this.getZoomForExtent(
b)}, getOLZoomFromMapObjectZoom:
function(
a){var
b =
null;
null !=
a && (
b =
a - this.minZoomLevel, this.map.baseLayer !==
this && (
b = this.map.baseLayer.getZoomForResolution(this.getResolutionForZoom(
b))));
return b}, getMapObjectZoomFromOLZoom:
function(
a){var
b =
null;
null !=
a && (
b =
a + this.minZoomLevel, this.map.baseLayer !==
this && (
b = this.getZoomForResolution(this.map.baseLayer.getResolutionForZoom(
b))));
return b}, CLASS_NAME:
"OpenLayers.Layer.FixedZoomLevels"});
OpenLayers.Layer.Google =
OpenLayers.Class(
OpenLayers.Layer.EventPane,
OpenLayers.Layer.FixedZoomLevels, {MIN_ZOOM_LEVEL:0, MAX_ZOOM_LEVEL:21, RESOLUTIONS:[1.40625, 0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125
E-4, 3.4332275390625
E-4, 1.71661376953125
E-4, 8.58306884765625
E-5, 4.291534423828125
E-5, 2.145767211914062
E-5, 1.072883605957031
E-5, 5.36441802978515
E-6, 2.68220901489257
E-6, 1.341104507446289
E-6, 6.705522537231445
E-7],
269 type:null, wrapDateLine:!0, sphericalMercator:!1,
version:null, initialize:function(
a,
b){
b =
b || {};
b.version || (
b.version =
"function" === typeof GMap2?
"2":
"3"); var
c =
OpenLayers.Layer.Google[
"v" +
b.version.replace(/\./
g,
"_")];
if (
c)
OpenLayers.Util.applyDefaults(
b,
c);
else throw"Unsupported Google Maps API version: " +
b.version;
OpenLayers.Util.applyDefaults(
b,
c.DEFAULTS);
b.maxExtent && (
b.maxExtent =
b.maxExtent.clone());
OpenLayers.Layer.EventPane.prototype.initialize.apply(
this, [
a,
b]);
OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(
this,
270 [
a,
b]);
this.sphericalMercator && (
OpenLayers.Util.extend(
this,
OpenLayers.Layer.SphericalMercator),
this.initMercatorParameters())},
clone:
function(){
return new OpenLayers.Layer.Google(this.name, this.getOptions())}, setVisibility:
function(
a){var
b =
null == this.opacity?1:this.opacity;
OpenLayers.Layer.EventPane.prototype.setVisibility.apply(
this, arguments); this.setOpacity(
b)}, display:
function(
a){this._dragging || this.setGMapVisibility(
a);
OpenLayers.Layer.EventPane.prototype.display.apply(
this, arguments)},
moveTo:
function(
a,
271 b,
c){this._dragging =
c;
OpenLayers.Layer.EventPane.prototype.moveTo.apply(
this, arguments);
delete this._dragging}, setOpacity:
function(
a){
a !== this.opacity && (
null != this.map && this.map.events.triggerEvent(
"changelayer", {layer:
this, property:
"opacity"}), this.opacity =
a);
if (this.getVisibility()){var
b = this.getMapContainer();
OpenLayers.Util.modifyDOMElement(
b,
null,
null,
null,
null,
null,
null,
a)}}, destroy:
function(){
if (this.map){this.setGMapVisibility(!1); var
a =
OpenLayers.Layer.Google.cache[this.map.id];
a && 1 >=
a.count &&
272 this.removeGMapElements()}
OpenLayers.Layer.EventPane.prototype.destroy.apply(
this, arguments)}, removeGMapElements:
function(){var
a =
OpenLayers.Layer.Google.cache[this.map.id];
if (
a){var
b = this.mapObject && this.getMapContainer();
b &&
b.parentNode &&
b.parentNode.removeChild(
b); (
b =
a.termsOfUse) &&
b.parentNode &&
b.parentNode.removeChild(
b); (
a =
a.poweredBy) &&
a.parentNode &&
a.parentNode.removeChild(
a); this.mapObject && (window.google &&
google.maps &&
google.maps.event &&
google.maps.event.clearListeners) &&
google.maps.event.clearListeners(
this.mapObject,
273 "tilesloaded")}}, removeMap:
function(
a){this.visibility && this.mapObject && this.setGMapVisibility(!1); var
b =
OpenLayers.Layer.Google.cache[
a.id];
b && (1 >=
b.count?(this.removeGMapElements(),
delete OpenLayers.Layer.Google.cache[
a.id]):--
b.count);
delete this.termsOfUse;
delete this.poweredBy;
delete this.mapObject;
delete this.dragObject;
OpenLayers.Layer.EventPane.prototype.removeMap.apply(
this, arguments)}, getOLBoundsFromMapObjectBounds:
function(
a){var
b =
null;
null !=
a && (
b =
a.getSouthWest(),
a =
a.getNorthEast(),
this.sphericalMercator?
274 (
b =
this.forwardMercator(
b.lng(),
b.lat()),
a =
this.forwardMercator(
a.lng(),
a.lat())):(
b =
new OpenLayers.LonLat(
b.lng(),
b.lat()),
a =
new OpenLayers.LonLat(
a.lng(),
a.lat())),
b =
new OpenLayers.Bounds(
b.lon,
b.lat,
a.lon,
a.lat));
return b}, getWarningHTML:
function(){
return OpenLayers.i18n(
"googleWarning")}, getMapObjectCenter:
function(){
return this.mapObject.getCenter()}, getMapObjectZoom:
function(){
return this.mapObject.getZoom()}, getLongitudeFromMapObjectLonLat:
function(
a){
return this.sphericalMercator?this.forwardMercator(
a.lng(),
275 a.lat()).lon:
a.lng()}, getLatitudeFromMapObjectLonLat:
function(
a){
return this.sphericalMercator?this.forwardMercator(
a.lng(),
a.lat()).lat:
a.lat()}, getXFromMapObjectPixel:
function(
a){
return a.x}, getYFromMapObjectPixel:
function(
a){
return a.y}, CLASS_NAME:
"OpenLayers.Layer.Google"});
OpenLayers.Layer.Google.cache = {};
276 OpenLayers.Layer.Google.v2 = {termsOfUse:
null, poweredBy:
null, dragObject:
null, loadMapObject:
function(){this.type || (this.type = G_NORMAL_MAP); var
a,
b,
c,
d =
OpenLayers.Layer.Google.cache[this.map.id];
if (
d)
a =
d.mapObject,
b =
d.termsOfUse,
c =
d.poweredBy, ++
d.count;
else{var
d = this.map.viewPortDiv,
e =
document.createElement(
"div");
e.id = this.map.id +
"_GMap2Container";
e.style.position =
"absolute";
e.style.width =
"100%";
e.style.height =
"100%";
d.appendChild(
e);
try{
a =
new GMap2(
e),
b =
e.lastChild,
d.appendChild(
b),
b.style.zIndex =
277 "1100",
b.style.right =
"",
b.style.bottom =
"",
b.className =
"olLayerGoogleCopyright",
c =
e.lastChild,
d.appendChild(
c),
c.style.zIndex =
"1100",
c.style.right =
"",
c.style.bottom =
"",
c.className =
"olLayerGooglePoweredBy gmnoprint"}
catch (
f){
throw f; }
OpenLayers.Layer.Google.cache[this.map.id] = {mapObject:
a, termsOfUse:
b, poweredBy:
c, count:1}}this.mapObject =
a; this.termsOfUse =
b; this.poweredBy =
c; - 1 ===
OpenLayers.Util.indexOf(this.mapObject.getMapTypes(),
this.type) && this.mapObject.addMapType(this.type);
"function" == typeof
a.getDragObject?
278 this.dragObject =
a.getDragObject():this.dragPanMapObject =
null; !1 === this.isBaseLayer && this.setGMapVisibility(
"none" !== this.div.style.display)}, onMapResize:
function(){
if (this.visibility && this.mapObject.isLoaded())this.mapObject.checkResize();
else{
if (!this._resized)var
a =
this,
b = GEvent.addListener(this.mapObject,
"load",
function(){GEvent.removeListener(
b);
delete a._resized;
a.mapObject.checkResize();
a.moveTo(
a.map.getCenter(),
a.map.getZoom())}); this._resized = !0}}, setGMapVisibility:
function(
a){var
b =
OpenLayers.Layer.Google.cache[this.map.id];
279 if (
b){var
c = this.mapObject.getContainer(); !0 ===
a?(this.mapObject.setMapType(this.type),
c.style.display =
"",
this.termsOfUse.style.left =
"",
this.termsOfUse.style.display =
"",
this.poweredBy.style.display =
"",
b.displayed =
this.id):(
b.displayed === this.
id &&
delete b.displayed,
b.displayed || (
c.style.display =
"none", this.termsOfUse.style.display =
"none", this.termsOfUse.style.left =
"-9999px", this.poweredBy.style.display =
"none"))}}, getMapContainer:
function(){
return this.mapObject.getContainer()}, getMapObjectBoundsFromOLBounds:
function(
a){var
b =
280 null;
null !=
a && (
b = this.sphericalMercator?this.inverseMercator(
a.bottom,
a.left):
new OpenLayers.LonLat(
a.bottom,
a.left),
a = this.sphericalMercator?this.inverseMercator(
a.top,
a.right):
new OpenLayers.LonLat(
a.top,
a.right),
b =
new GLatLngBounds(
new GLatLng(
b.lat,
b.lon),
new GLatLng(
a.lat,
a.lon)));
return b}, setMapObjectCenter:
function(
a,
b){this.mapObject.setCenter(
a,
b)}, dragPanMapObject:
function(
a,
b){this.dragObject.moveBy(
new GSize( -
a,
b))}, getMapObjectLonLatFromMapObjectPixel:
function(
a){
return this.mapObject.fromContainerPixelToLatLng(
a)},
281 getMapObjectPixelFromMapObjectLonLat:
function(
a){
return this.mapObject.fromLatLngToContainerPixel(
a)}, getMapObjectZoomFromMapObjectBounds:
function(
a){
return this.mapObject.getBoundsZoomLevel(
a)}, getMapObjectLonLatFromLonLat:
function(
a,
b){var
c; this.sphericalMercator?(
c = this.inverseMercator(
a,
b),
c =
new GLatLng(
c.lat,
c.lon)):
c = new GLatLng(
b,
a);
return c}, getMapObjectPixelFromXY:
function(
a,
b){
return new GPoint(
a,
b)}};
OpenLayers.Format.XML =
OpenLayers.Class(
OpenLayers.Format, {
namespaces:null, namespaceAlias:null, defaultPrefix:null, readers:{}, writers:{}, xmldom:
null, initialize:
function(
a){window.ActiveXObject && (this.xmldom =
new ActiveXObject(
"Microsoft.XMLDOM"));
OpenLayers.Format.prototype.initialize.apply(
this, [
a]); this.
namespaces =
OpenLayers.Util.extend({}, this.
namespaces); this.namespaceAlias = {};
for (var
b in this.
namespaces)this.namespaceAlias[this.namespaces[
b]] =
b}, destroy:
function(){this.xmldom =
null;
OpenLayers.Format.prototype.destroy.apply(
this,
282 arguments)}, setNamespace:
function(
a,
b){this.
namespaces[
a] =
b; this.namespaceAlias[
b] =
a}, read:
function(
a){var
b =
a.indexOf(
"<"); 0 <
b && (
a =
a.substring(
b));
b =
OpenLayers.Util.Try(
OpenLayers.Function.bind(
function(){var b; b = window.ActiveXObject && !this.xmldom?new ActiveXObject(
"Microsoft.XMLDOM"):this.xmldom; b.loadXML(a); return b},
this),
function(){return(new DOMParser).parseFromString(a,
"text/xml")},
function(){var b = new XMLHttpRequest; b.open(
"GET",
"data:text/xml;charset=utf-8," + encodeURIComponent(a), !1); b.overrideMimeType &&
283 b.overrideMimeType(
"text/xml"); b.send(null); return b.responseXML}); this.keepData && (this.data =
b);
return b}, write:
function(
a){
if (this.xmldom)
a =
a.xml;
else{var
b =
new XMLSerializer;
if (1 ==
a.nodeType){var
c =
document.implementation.createDocument(
"",
"",
null);
c.importNode && (
a =
c.importNode(
a, !0));
c.appendChild(
a);
a =
b.serializeToString(
c)}
else a =
b.serializeToString(
a)}
return a}, createElementNS:
function(
a,
b){
return this.xmldom?
"string" == typeof
a?this.xmldom.createNode(1,
b,
a):this.xmldom.createNode(1,
b,
""):
document.createElementNS(
a,
284 b)}, createDocumentFragment:
function(){
return this.xmldom?this.xmldom.createDocumentFragment():
document.createDocumentFragment()}, createTextNode:
function(
a){
"string" !== typeof
a && (
a =
String(
a));
return this.xmldom?this.xmldom.createTextNode(
a):
document.createTextNode(
a)}, getElementsByTagNameNS:
function(
a,
b,
c){var
d = [];
if (
a.getElementsByTagNameNS)
d =
a.getElementsByTagNameNS(
b,
c);
else{
a =
a.getElementsByTagName(
"*");
for (var
e,
f,
g = 0,
h =
a.length;
g <
h; ++
g)
if (
e =
a[
g],
f =
e.prefix?
e.prefix +
":" +
c:
c,
"*" ==
c ||
f ==
e.nodeName)
"*" !=
285 b &&
b !=
e.namespaceURI ||
d.push(
e)}
return d}, getAttributeNodeNS:
function(
a,
b,
c){var
d =
null;
if (
a.getAttributeNodeNS)
d =
a.getAttributeNodeNS(
b,
c);
else{
a =
a.attributes;
for (var
e,
f,
g = 0,
h =
a.length;
g <
h; ++
g)
if (
e =
a[
g],
e.namespaceURI ==
b && (
f =
e.prefix?
e.prefix +
":" +
c:
c,
f ==
e.nodeName)){
d =
e;
break}}
return d}, getAttributeNS:
function(
a,
b,
c){var
d =
"";
if (
a.getAttributeNS)
d =
a.getAttributeNS(
b,
c) ||
"";
else if (
a = this.getAttributeNodeNS(
a,
b,
c))
d =
a.nodeValue;
return d}, getChildValue:
function(
a,
b){var
c =
b ||
"";
if (
a)
for (var
d =
a.firstChild;
d;
d =
286 d.nextSibling)
switch (
d.nodeType){
case 3:
case 4:
c +=
d.nodeValue}
return c}, isSimpleContent:
function(
a){var
b = !0;
for (
a =
a.firstChild;
a;
a =
a.nextSibling)
if (1 ===
a.nodeType){
b = !1;
break}
return b}, contentType:
function(
a){var
b = !1,
c = !1,
d =
OpenLayers.Format.XML.CONTENT_TYPE.EMPTY;
for (
a =
a.firstChild;
a;
a =
a.nextSibling){
switch (
a.nodeType){
case 1:
c = !0;
break;
case 8:
break;
default:
b = !0}
if (
c &&
b)
break}
if (
c &&
b)
d =
OpenLayers.Format.XML.CONTENT_TYPE.MIXED;
else{
if (
c)
return OpenLayers.Format.XML.CONTENT_TYPE.COMPLEX;
if (
b)
return OpenLayers.Format.XML.CONTENT_TYPE.SIMPLE}
return d},
287 hasAttributeNS:
function(
a,
b,
c){var
d = !1;
return d =
a.hasAttributeNS?
a.hasAttributeNS(
b,
c):!!this.getAttributeNodeNS(
a,
b,
c)}, setAttributeNS:
function(
a,
b,
c,
d){
if (
a.setAttributeNS)
a.setAttributeNS(
b,
c,
d);
else if (this.xmldom)
b?(
b =
a.ownerDocument.createNode(2,
c,
b),
b.nodeValue =
d,
a.setAttributeNode(
b)):
a.setAttribute(
c,
d);
else throw"setAttributeNS not implemented"; }, createElementNSPlus:
function(
a,
b){
b =
b || {}; var
c =
b.uri || this.
namespaces[
b.prefix];
c || (
c =
a.indexOf(
":"),
c = this.
namespaces[
a.substring(0,
c)]);
c ||
288 (
c = this.
namespaces[this.defaultPrefix]);
c = this.createElementNS(
c,
a);
b.attributes && this.setAttributes(
c,
b.attributes); var
d =
b.value;
null !=
d &&
c.appendChild(this.createTextNode(
d));
return c}, setAttributes:
function(
a,
b){var
c,
d,
e;
for (
e in
b)
null !=
b[
e] &&
b[
e].toString && (
c =
b[
e].toString(),
d = this.
namespaces[
e.substring(0,
e.indexOf(
":"))] ||
null,
this.setAttributeNS(
a,
d,
e,
c))}, readNode:
function(
a,
b){
b || (
b = {}); var
c = this.readers[
a.namespaceURI?this.namespaceAlias[
a.namespaceURI]:this.defaultPrefix];
if (
c){var
d =
289 a.localName ||
a.nodeName.split(
":").pop(); (
c =
c[
d] ||
c[
"*"]) &&
c.apply(
this, [
a,
b])}
return b}, readChildNodes:
function(
a,
b){
b || (
b = {});
for (var
c =
a.childNodes,
d,
e = 0,
f =
c.length;
e <
f; ++
e)
d =
c[
e], 1 ==
d.nodeType && this.readNode(
d,
b);
return b}, writeNode:
function(
a,
b,
c){var
d,
e =
a.indexOf(
":"); 0 <
e?(
d =
a.substring(0,
e),
a =
a.substring(
e + 1)):
d =
c?
this.namespaceAlias[
c.namespaceURI]:
this.defaultPrefix;
b = this.writers[
d][
a].apply(
this, [
b]);
c &&
c.appendChild(
b);
return b}, getChildEl:
function(
a,
b,
c){
return a && this.getThisOrNextEl(
a.firstChild,
290 b,
c)}, getNextEl:
function(
a,
b,
c){
return a && this.getThisOrNextEl(
a.nextSibling,
b,
c)}, getThisOrNextEl:
function(
a,
b,
c){
a:
for (;
a;
a =
a.nextSibling)
switch (
a.nodeType){
case 1:
if (!(
b &&
b !== (
a.localName ||
a.nodeName.split(
":").pop()) ||
c &&
c !==
a.namespaceURI))
break a;
a =
null;
break a;
case 3:
if (/^\
s*
$/.test(
a.nodeValue))
break;
case 4:
case 6:
case 12:
case 10:
case 11:
a =
null;
break a}
return a ||
null},
lookupNamespaceURI:
function(
a,
b){var
c =
null;
if (
a)
if (
a.lookupNamespaceURI)
c =
a.lookupNamespaceURI(
b);
else a:
switch (
a.nodeType){
case 1:
if (
null !==
291 a.namespaceURI &&
a.prefix ===
b){
c =
a.namespaceURI;
break a}
if (
c =
a.attributes.length)
for (var
d,
e = 0;
e <
c; ++
e)
if (
d =
a.attributes[
e],
"xmlns" ===
d.prefix &&
d.name ===
"xmlns:" +
b){
c =
d.value ||
null;
break a}
else if (
"xmlns" ===
d.name &&
null ===
b){
c =
d.value ||
null;
break a}
c = this.
lookupNamespaceURI(a.parentNode,
b);
break a;
case 2:
c = this.
lookupNamespaceURI(a.ownerElement,
b);
break a;
case 9:
c = this.
lookupNamespaceURI(a.documentElement,
b);
break a;
case 6:
case 12:
case 10:
case 11:
break a;
default:
c = this.
lookupNamespaceURI(a.parentNode,
292 b)}
return c}, getXMLDoc:
function(){
OpenLayers.Format.XML.document || this.xmldom || (
document.implementation &&
document.implementation.createDocument?
OpenLayers.Format.XML.document =
document.implementation.createDocument(
"",
"",
null):!this.xmldom && window.ActiveXObject && (
this.xmldom =
new ActiveXObject(
"Microsoft.XMLDOM")));
return OpenLayers.Format.XML.document || this.xmldom}, CLASS_NAME:
"OpenLayers.Format.XML"});
OpenLayers.Format.XML.CONTENT_TYPE = {EMPTY:0, SIMPLE:1, COMPLEX:2, MIXED:3};
293 OpenLayers.Format.XML.lookupNamespaceURI =
OpenLayers.Function.bind(
OpenLayers.Format.XML.prototype.lookupNamespaceURI,
OpenLayers.Format.XML.prototype);
OpenLayers.Format.XML.document =
null;
OpenLayers.Format.WFST =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Format.WFST.DEFAULTS); var
b =
OpenLayers.Format.WFST[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported WFST version: " +
a.version;
return new b(
a)};
OpenLayers.Format.WFST.DEFAULTS = {
version:
"1.0.0"};
OpenLayers.Feature =
OpenLayers.Class({layer:
null, id:
null, lonlat:
null, data:
null, marker:
null, popupClass:
null, popup:
null, initialize:
function(
a,
b,
c){this.layer =
a; this.lonlat =
b; this.data =
null !=
c?
c:{}; this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, destroy:
function(){
null != this.layer &&
null != this.layer.map &&
null != this.popup && this.layer.map.removePopup(this.popup);
null != this.layer &&
null != this.marker && this.layer.removeMarker(this.marker); this.data = this.lonlat = this.
id = this.layer =
null;
null != this.marker &&
294 (this.destroyMarker(this.marker), this.marker =
null);
null != this.popup && (this.destroyPopup(this.popup), this.popup =
null)}, onScreen:
function(){var
a = !1;
null != this.layer &&
null != this.layer.map && (
a = this.layer.map.getExtent().containsLonLat(this.lonlat));
return a}, createMarker:
function(){
null != this.lonlat && (this.marker =
new OpenLayers.Marker(this.lonlat, this.data.icon));
return this.marker}, destroyMarker:
function(){this.marker.destroy()}, createPopup:
function(
a){
null != this.lonlat && (this.popup || (this.popup =
new (this.popupClass?
295 this.popupClass:
OpenLayers.Popup.Anchored)(this.
id +
"_popup", this.lonlat, this.data.popupSize, this.data.popupContentHTML, this.marker?this.marker.icon:
null,
a)),
null != this.data.overflow && (this.popup.contentDiv.style.overflow = this.data.overflow), this.popup.feature =
this);
return this.popup}, destroyPopup:
function(){this.popup && (this.popup.feature =
null, this.popup.destroy(), this.popup =
null)}, CLASS_NAME:
"OpenLayers.Feature"});
OpenLayers.State = {UNKNOWN:
"Unknown", INSERT:
"Insert", UPDATE:
"Update", DELETE:
"Delete"};
296 OpenLayers.Feature.Vector =
OpenLayers.Class(
OpenLayers.Feature, {fid:null, geometry:null, attributes:null, bounds:null, state:null,
style:null, url:null, renderIntent:
"default", modified:null, initialize:function(
a,
b,
c){
OpenLayers.Feature.prototype.initialize.apply(
this, [
null,
null,
b]); this.lonlat =
null; this.geometry =
a?
a:
null; this.state =
null; this.attributes = {};
b && (this.attributes =
OpenLayers.Util.extend(this.attributes,
b)); this.
style =
c?
c:
null}, destroy:
function(){this.layer && (this.layer.removeFeatures(
this), this.layer =
297 null); this.modified = this.geometry =
null;
OpenLayers.Feature.prototype.destroy.apply(
this, arguments)},
clone:
function(){
return new OpenLayers.Feature.Vector(this.geometry?this.geometry.clone():
null,
this.attributes,
this.style)}, onScreen:
function(
a){var
b = !1; this.layer && this.layer.map && (
b = this.layer.map.getExtent(),
a?(
a = this.geometry.getBounds(),
b =
b.intersectsBounds(
a)):
b =
b.toGeometry().intersects(
this.geometry));
return b}, getVisibility:
function(){
return!(this.
style &&
"none" == this.
style.display || !this.layer ||
298 this.layer && this.layer.styleMap &&
"none" == this.layer.styleMap.createSymbolizer(
this, this.renderIntent).display || this.layer && !this.layer.getVisibility())}, createMarker:
function(){
return null}, destroyMarker:
function(){}, createPopup:
function(){
return null}, atPoint:
function(
a,
b,
c){var
d = !1; this.geometry && (
d = this.geometry.atPoint(
a,
b,
c));
return d}, destroyPopup:
function(){}, move:
function(
a){
if (this.layer && this.geometry.move){
a =
"OpenLayers.LonLat" ==
a.CLASS_NAME?this.layer.getViewPortPxFromLonLat(
a):
a; var
b =
299 this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat()),
c = this.layer.map.getResolution(); this.geometry.move(
c * (
a.x -
b.x),
c * (
b.y -
a.y)); this.layer.drawFeature(
this);
return b}}, toState:
function(
a){
if (
a ==
OpenLayers.State.UPDATE)
switch (this.state){
case OpenLayers.State.UNKNOWN:
case OpenLayers.State.DELETE:this.state =
a}
else if (
a ==
OpenLayers.State.INSERT)
switch (this.state){
case OpenLayers.State.UNKNOWN:
break;
default:this.state =
a}
else if (
a ==
OpenLayers.State.DELETE)
switch (this.state){
case OpenLayers.State.UNKNOWN:
case OpenLayers.State.UPDATE:this.state =
300 a}
else a ==
OpenLayers.State.UNKNOWN && (this.state =
a)}, CLASS_NAME:
"OpenLayers.Feature.Vector"});
301 OpenLayers.Feature.Vector.style = {
"default":{fillColor:
"#ee9900", fillOpacity:0.4, hoverFillColor:
"white", hoverFillOpacity:0.8, strokeColor:
"#ee9900", strokeOpacity:1, strokeWidth:1, strokeLinecap:
"round", strokeDashstyle:
"solid", hoverStrokeColor:
"red", hoverStrokeOpacity:1, hoverStrokeWidth:0.2, pointRadius:6, hoverPointRadius:1, hoverPointUnit:
"%", pointerEvents:
"visiblePainted", cursor:
"inherit", fontColor:
"#000000", labelAlign:
"cm", labelOutlineColor:
"white", labelOutlineWidth:3}, select:{fillColor:
"blue", fillOpacity:0.4,
302 hoverFillColor:
"white", hoverFillOpacity:0.8, strokeColor:
"blue", strokeOpacity:1, strokeWidth:2, strokeLinecap:
"round", strokeDashstyle:
"solid", hoverStrokeColor:
"red", hoverStrokeOpacity:1, hoverStrokeWidth:0.2, pointRadius:6, hoverPointRadius:1, hoverPointUnit:
"%", pointerEvents:
"visiblePainted", cursor:
"pointer", fontColor:
"#000000", labelAlign:
"cm", labelOutlineColor:
"white", labelOutlineWidth:3}, temporary:{fillColor:
"#66cccc", fillOpacity:0.2, hoverFillColor:
"white", hoverFillOpacity:0.8, strokeColor:
"#66cccc", strokeOpacity:1,
303 strokeLinecap:
"round", strokeWidth:2, strokeDashstyle:
"solid", hoverStrokeColor:
"red", hoverStrokeOpacity:1, hoverStrokeWidth:0.2, pointRadius:6, hoverPointRadius:1, hoverPointUnit:
"%", pointerEvents:
"visiblePainted", cursor:
"inherit", fontColor:
"#000000", labelAlign:
"cm", labelOutlineColor:
"white", labelOutlineWidth:3},
"delete":{display:
"none"}};
OpenLayers.Style =
OpenLayers.Class({id:
null, name:
null, title:
null, description:
null, layerName:
null, isDefault:!1, rules:
null, context:
null, defaultStyle:
null, defaultsPerSymbolizer:!1, propertyStyles:
null, initialize:
function(
a,
b){
OpenLayers.Util.extend(
this,
b); this.rules = [];
b &&
b.rules && this.addRules(
b.rules); this.setDefaultStyle(
a ||
OpenLayers.Feature.Vector.style[
"default"]); this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, destroy:
function(){
for (var
a = 0,
b = this.rules.length;
a <
b;
a++)this.rules[
a].destroy(),
304 this.rules[
a] =
null; this.defaultStyle = this.rules =
null}, createSymbolizer:
function(
a){
for (var
b = this.defaultsPerSymbolizer?{}:this.createLiterals(
OpenLayers.Util.extend({},
this.defaultStyle),
a),
c = this.rules,
d,
e = [],
f = !1,
g = 0,
h =
c.length;
g <
h;
g++)
d =
c[
g],
d.evaluate(
a) && (
d instanceof
OpenLayers.Rule &&
d.elseFilter?
e.push(
d):(
f = !0, this.applySymbolizer(
d,
b,
a)));
if (!1 ==
f && 0 <
e.length)
for (
f = !0,
g = 0,
h =
e.length;
g <
h;
g++)this.applySymbolizer(
e[
g],
b,
a); 0 <
c.length && !1 ==
f && (
b.display =
"none");
null !=
b.label &&
"string" !== typeof
b.label &&
305 (
b.label =
String(
b.label));
return b}, applySymbolizer:
function(
a,
b,
c){var
d =
c.geometry?this.getSymbolizerPrefix(
c.geometry):
OpenLayers.
Style.
SYMBOLIZER_PREFIXES[0];
a =
a.symbolizer[
d] ||
a.symbolizer; !0 === this.defaultsPerSymbolizer && (
d = this.defaultStyle,
OpenLayers.Util.applyDefaults(
a, {pointRadius:
d.pointRadius}), !0 !==
a.stroke && !0 !==
a.graphic ||
OpenLayers.Util.applyDefaults(
a, {strokeWidth:
d.strokeWidth, strokeColor:
d.strokeColor, strokeOpacity:
d.strokeOpacity, strokeDashstyle:
d.strokeDashstyle, strokeLinecap:
d.strokeLinecap}),
306 !0 !==
a.fill && !0 !==
a.graphic ||
OpenLayers.Util.applyDefaults(
a, {fillColor:
d.fillColor, fillOpacity:
d.fillOpacity}), !0 ===
a.graphic &&
OpenLayers.Util.applyDefaults(
a, {pointRadius:this.defaultStyle.pointRadius, externalGraphic:this.defaultStyle.externalGraphic, graphicName:this.defaultStyle.graphicName, graphicOpacity:this.defaultStyle.graphicOpacity, graphicWidth:this.defaultStyle.graphicWidth, graphicHeight:this.defaultStyle.graphicHeight, graphicXOffset:this.defaultStyle.graphicXOffset, graphicYOffset:this.defaultStyle.graphicYOffset}));
307 return this.createLiterals(
OpenLayers.Util.extend(
b,
a),
c)}, createLiterals:
function(
a,
b){var
c =
OpenLayers.Util.extend({},
b.attributes ||
b.data);
OpenLayers.Util.extend(
c, this.context);
for (var
d in this.propertyStyles)
a[
d] =
OpenLayers.Style.createLiteral(
a[
d],
c,
b,
d);
return a}, findPropertyStyles:
function(){var
a = {}; this.addPropertyStyles(
a, this.defaultStyle);
for (var
b = this.rules,
c,
d,
e = 0,
f =
b.length;
e <
f;
e++){
c =
b[
e].symbolizer;
for (var
g in
c)
if (
d =
c[
g],
"object" == typeof
d)this.addPropertyStyles(
a,
d);
else{this.addPropertyStyles(
a,
308 c);
break}}
return a}, addPropertyStyles:
function(
a,
b){var
c,
d;
for (
d in
b)
c =
b[
d],
"string" == typeof
c &&
c.match(/\
$\{\
w+\}/) && (
a[
d] = !0);
return a}, addRules:
function(
a){
Array.prototype.push.apply(this.rules,
a); this.propertyStyles = this.findPropertyStyles()}, setDefaultStyle:
function(
a){this.defaultStyle =
a; this.propertyStyles = this.findPropertyStyles()}, getSymbolizerPrefix:
function(
a){
for (var
b =
OpenLayers.Style.SYMBOLIZER_PREFIXES,
c = 0,
d =
b.length;
c <
d;
c++)
if ( - 1 !=
a.CLASS_NAME.indexOf(
b[
c]))
return b[
c]},
clone:
function(){var
a =
309 OpenLayers.Util.extend({},
this);
if (this.rules){
a.rules = [];
for (var
b = 0,
c = this.rules.length;
b <
c; ++
b)
a.rules.push(this.rules[
b].
clone())}
a.context = this.context &&
OpenLayers.Util.extend({}, this.context);
b =
OpenLayers.Util.extend({}, this.defaultStyle);
return new OpenLayers.Style(
b,
a)}, CLASS_NAME:
"OpenLayers.Style"});
OpenLayers.Style.createLiteral =
function(
a,
b,
c,
d){
"string" == typeof
a && - 1 !=
a.indexOf(
"${") && (
a =
OpenLayers.String.format(
a,
b, [
c,
d]),
a = isNaN(
a) || !
a?
a:parseFloat(
a));
return a};
310 OpenLayers.Style.SYMBOLIZER_PREFIXES = [
"Point",
"Line",
"Polygon",
"Text",
"Raster"];
OpenLayers.Filter =
OpenLayers.Class({initialize:
function(
a){
OpenLayers.Util.extend(
this,
a)}, destroy:
function(){}, evaluate:
function(
a){
return!0},
clone:
function(){
return null}, toString:
function(){
return OpenLayers.Format &&
OpenLayers.Format.CQL?
OpenLayers.Format.CQL.prototype.write(
this):Object.prototype.toString.call(
this)}, CLASS_NAME:
"OpenLayers.Filter"});
OpenLayers.Filter.Spatial =
OpenLayers.Class(
OpenLayers.Filter, {type:null, property:null, value:null, distance:null, distanceUnits:null, evaluate:function(
a){var
b = !1;
switch (this.type){
case OpenLayers.Filter.Spatial.BBOX:
case OpenLayers.Filter.Spatial.INTERSECTS:
if (
a.geometry){var
c = this.value;
"OpenLayers.Bounds" == this.value.CLASS_NAME && (
c = this.value.toGeometry());
a.geometry.intersects(
c) && (
b = !0)}
break;
default:
throw Error(
"evaluate is not implemented for this filter type."); }
return b},
clone:
function(){var
a =
311 OpenLayers.Util.applyDefaults({value:this.value && this.value.clone && this.value.clone()},
this);
return new OpenLayers.Filter.Spatial(
a)}, CLASS_NAME:
"OpenLayers.Filter.Spatial"});
OpenLayers.Filter.Spatial.BBOX =
"BBOX";
OpenLayers.Filter.Spatial.INTERSECTS =
"INTERSECTS";
OpenLayers.Filter.Spatial.DWITHIN =
"DWITHIN";
OpenLayers.Filter.Spatial.WITHIN =
"WITHIN";
OpenLayers.Filter.Spatial.CONTAINS =
"CONTAINS";
OpenLayers.Filter.FeatureId =
OpenLayers.Class(
OpenLayers.Filter, {fids:null, type:
"FID", initialize:function(
a){this.fids = [];
OpenLayers.Filter.prototype.initialize.apply(
this, [
a])}, evaluate:
function(
a){
for (var
b = 0,
c = this.fids.length;
b <
c;
b++)
if ((
a.fid ||
a.id) ==
this.fids[
b])
return!0;
return!1},
clone:
function(){var
a =
new OpenLayers.Filter.FeatureId;
OpenLayers.Util.extend(
a,
this);
a.fids = this.fids.slice();
return a}, CLASS_NAME:
"OpenLayers.Filter.FeatureId"});
OpenLayers.Format.WFST.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance", wfs:
"http://www.opengis.net/wfs", gml:
"http://www.opengis.net/gml", ogc:
"http://www.opengis.net/ogc", ows:
"http://www.opengis.net/ows"}, defaultPrefix:
"wfs",
version:
null, schemaLocations:
null, srsName:
null, extractAttributes:!0, xy:!0, stateName:
null, initialize:
function(
a){this.stateName = {}; this.stateName[
OpenLayers.State.INSERT] =
"wfs:Insert"; this.stateName[
OpenLayers.State.UPDATE] =
312 "wfs:Update"; this.stateName[
OpenLayers.State.DELETE] =
"wfs:Delete";
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a])}, getSrsName:
function(
a,
b){var
c =
b &&
b.srsName;
c || (
c =
a &&
a.layer?
a.layer.projection.getCode():this.srsName);
return c}, read:
function(
a,
b){
b =
b || {};
OpenLayers.Util.applyDefaults(
b, {output:
"features"});
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
c = {};
a && this.readNode(
a,
c, !0);
c.features &&
"features" ===
b.output &&
313 (
c =
c.features);
return c}, readers:{wfs:{FeatureCollection:
function(
a,
b){
b.features = []; this.readChildNodes(
a,
b)}}}, write:
function(
a,
b){var
c = this.writeNode(
"wfs:Transaction", {features:
a, options:
b}),
d = this.schemaLocationAttr();
d && this.setAttributeNS(
c, this.
namespaces.xsi,
"xsi:schemaLocation",
d);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
c])}, writers:{wfs:{GetFeature:
function(
a){var
b = this.createElementNSPlus(
"wfs:GetFeature", {attributes:{service:
"WFS",
version:this.
version,
handle:
a &&
a.handle,
314 outputFormat:
a &&
a.outputFormat, maxFeatures:
a &&
a.maxFeatures,
"xsi:schemaLocation":this.schemaLocationAttr(
a)}});
if (
"string" == typeof this.featureType)this.writeNode(
"Query",
a,
b);
else for (var
c = 0,
d = this.featureType.length;
c <
d;
c++)
a.featureType = this.featureType[
c], this.writeNode(
"Query",
a,
b);
return b}, Transaction:
function(
a){
a =
a || {}; var
b =
a.options || {},
c = this.createElementNSPlus(
"wfs:Transaction", {attributes:{service:
"WFS",
version:this.
version,
handle:
b.handle}}),
d,
e =
a.features;
if (
e){!0 ===
b.multi &&
OpenLayers.Util.extend(this.geometryTypes,
315{
"OpenLayers.Geometry.Point":
"MultiPoint",
"OpenLayers.Geometry.LineString":!0 === this.multiCurve?
"MultiCurve":
"MultiLineString",
"OpenLayers.Geometry.Polygon":!0 === this.multiSurface?
"MultiSurface":
"MultiPolygon"}); var
f,
g;
a = 0;
for (
d =
e.length;
a <
d; ++
a)
g =
e[
a], (
f = this.stateName[
g.state]) && this.writeNode(
f, {feature:
g, options:
b},
c); !0 ===
b.multi && this.setGeometryTypes()}
if (
b.nativeElements)
for (
a = 0,
d =
b.nativeElements.length;
a <
d; ++
a)this.writeNode(
"wfs:Native",
b.nativeElements[
a],
c);
return c}, Native:
function(
a){
return this.createElementNSPlus(
"wfs:Native",
316{attributes:{vendorId:
a.vendorId, safeToIgnore:
a.safeToIgnore}, value:
a.value})}, Insert:
function(
a){var
b =
a.feature;
a =
a.options;
a = this.createElementNSPlus(
"wfs:Insert", {attributes:{
handle:
a &&
a.handle}}); this.srsName = this.getSrsName(
b); this.writeNode(
"feature:_typeName",
b,
a);
return a}, Update:
function(
a){var
b =
a.feature;
a =
a.options;
a = this.createElementNSPlus(
"wfs:Update", {attributes:{
handle:
a &&
a.handle, typeName:(this.featureNS?this.featurePrefix +
":":
"") + this.featureType}}); this.featureNS &&
a.setAttribute(
"xmlns:" +
317 this.featurePrefix, this.featureNS); var
c =
b.modified;
null === this.geometryName ||
c &&
void 0 ===
c.geometry || (this.srsName = this.getSrsName(
b), this.writeNode(
"Property", {name:this.geometryName, value:
b.geometry},
a));
for (var
d in
b.attributes)
void 0 ===
b.attributes[
d] ||
c &&
c.attributes && (!
c.attributes ||
void 0 ===
c.attributes[
d]) || this.writeNode(
"Property", {name:
d, value:
b.attributes[
d]},
a); this.writeNode(
"ogc:Filter",
new OpenLayers.Filter.FeatureId({fids:[b.fid]}),
a);
return a}, Property:
function(
a){var
b = this.createElementNSPlus(
"wfs:Property");
318 this.writeNode(
"Name",
a.name,
b);
null !==
a.value && this.writeNode(
"Value",
a.value,
b);
return b}, Name:
function(
a){
return this.createElementNSPlus(
"wfs:Name", {value:
a})}, Value:
function(
a){var
b;
a instanceof
OpenLayers.Geometry?(
b = this.createElementNSPlus(
"wfs:Value"),
a = this.writeNode(
"feature:_geometry",
a).firstChild,
b.appendChild(
a)):
b =
this.createElementNSPlus(
"wfs:Value", {value:
a});
return b}, Delete:
function(
a){var
b =
a.feature;
a =
a.options;
a = this.createElementNSPlus(
"wfs:Delete", {attributes:{
handle:
a &&
319 a.handle, typeName:(this.featureNS?this.featurePrefix +
":":
"") + this.featureType}}); this.featureNS &&
a.setAttribute(
"xmlns:" + this.featurePrefix, this.featureNS); this.writeNode(
"ogc:Filter",
new OpenLayers.Filter.FeatureId({fids:[b.fid]}),
a);
return a}}}, schemaLocationAttr:
function(
a){
a =
OpenLayers.Util.extend({featurePrefix:this.featurePrefix, schema:this.schema},
a); var
b =
OpenLayers.Util.extend({}, this.schemaLocations);
a.schema && (
b[
a.featurePrefix] =
a.schema);
a = []; var
c,
d;
for (
d in
b)(
c = this.
namespaces[
d]) &&
320 a.push(
c +
" " +
b[
d]);
return a.join(
" ") ||
void 0}, setFilterProperty:
function(
a){
if (
a.filters)
for (var
b = 0,
c =
a.filters.length;
b <
c; ++
b)
OpenLayers.Format.WFST.v1.prototype.setFilterProperty.call(
this,
a.filters[
b]);
else a instanceof
OpenLayers.Filter.Spatial && !
a.property && (
a.property = this.geometryName)}, CLASS_NAME:
"OpenLayers.Format.WFST.v1"});
OpenLayers.Format.OGCExceptionReport =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{ogc:
"http://www.opengis.net/ogc"}, regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, defaultPrefix:
"ogc", read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a])); var
b = {exceptionReport:
null};
a.documentElement && (this.readChildNodes(
a,
b),
null ===
b.exceptionReport && (
b = (
new OpenLayers.Format.OWSCommon).read(
a)));
return b}, readers:{ogc:{ServiceExceptionReport:
function(
a,
321 b){
b.exceptionReport = {exceptions:[]}; this.readChildNodes(
a,
b.exceptionReport)}, ServiceException:
function(
a,
b){var
c = {code:
a.getAttribute(
"code"), locator:
a.getAttribute(
"locator"), text:this.getChildValue(
a)};
b.exceptions.push(
c)}}}, CLASS_NAME:
"OpenLayers.Format.OGCExceptionReport"});
OpenLayers.Format.XML.VersionedOGC =
OpenLayers.Class(
OpenLayers.Format.XML, {defaultVersion:null,
version:null, profile:null, allowFallback:!1, name:null, stringifyOutput:!1, parser:null, initialize:function(
a){
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a]);
a = this.CLASS_NAME; this.name =
a.substring(
a.lastIndexOf(
".") + 1)}, getVersion:
function(
a,
b){var
c;
a?(
c = this.
version,
c || (
c =
a.getAttribute(
"version"),
c || (
c = this.defaultVersion))):
c =
b &&
b.
version ||
this.
version ||
this.defaultVersion;
return c}, getParser:
function(
a){
a =
322 a || this.defaultVersion; var
b = this.profile?
"_" + this.profile:
"";
if (!this.parser || this.parser.VERSION !=
a){var
c =
OpenLayers.Format[this.name][
"v" +
a.replace(/\./
g,
"_") +
b];
if (!
c && (
"" !==
b && this.allowFallback && (
b =
"",
c =
OpenLayers.Format[
this.name][
"v" +
a.replace(/\./
g,
"_")]), !
c))
throw"Can't find a " + this.name +
" parser for version " +
a +
b; this.parser =
new c(this.options)}
return this.parser}, write:
function(
a,
b){var
c = this.getVersion(
null,
b); this.parser = this.getParser(
c);
c = this.parser.write(
a,
b);
return!1 === this.stringifyOutput?
323 c:
OpenLayers.Format.XML.prototype.write.apply(
this, [
c])}, read:
function(
a,
b){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a])); var
c = this.getVersion(
a.documentElement); this.parser = this.getParser(
c); var
d = this.parser.read(
a,
b),
e = this.parser.errorProperty ||
null;
null !==
e &&
void 0 ===
d[
e] && (
e =
new OpenLayers.Format.OGCExceptionReport,
d.error =
e.read(
a));
d.version =
c;
return d}, CLASS_NAME:
"OpenLayers.Format.XML.VersionedOGC"});
OpenLayers.Filter.Logical =
OpenLayers.Class(
OpenLayers.Filter, {filters:null, type:null, initialize:function(
a){this.filters = [];
OpenLayers.Filter.prototype.initialize.apply(
this, [
a])}, destroy:
function(){this.filters =
null;
OpenLayers.Filter.prototype.destroy.apply(
this)}, evaluate:
function(
a){var
b,
c;
switch (this.type){
case OpenLayers.Filter.Logical.AND:
b = 0;
for (
c = this.filters.length;
b <
c;
b++)
if (!1 == this.filters[
b].evaluate(
a))
return!1;
return!0;
case OpenLayers.Filter.Logical.OR:
b = 0;
for (
c = this.filters.length;
b <
324 c;
b++)
if (!0 == this.filters[
b].evaluate(
a))
return!0;
return!1;
case OpenLayers.Filter.Logical.NOT:
return!this.filters[0].evaluate(
a)}},
clone:
function(){
for (var
a = [],
b = 0,
c = this.filters.length;
b <
c; ++
b)
a.push(this.filters[
b].
clone());
return new OpenLayers.Filter.Logical({type:this.type, filters:
a})}, CLASS_NAME:
"OpenLayers.Filter.Logical"});
OpenLayers.Filter.Logical.AND =
"&&";
OpenLayers.Filter.Logical.OR =
"||";
OpenLayers.Filter.Logical.NOT =
"!";
OpenLayers.Filter.Comparison =
OpenLayers.Class(
OpenLayers.Filter, {type:null, property:null, value:null, matchCase:!0, lowerBoundary:null, upperBoundary:null, initialize:function(
a){
OpenLayers.Filter.prototype.initialize.apply(
this, [
a]); this.type ===
OpenLayers.Filter.Comparison.LIKE &&
void 0 ===
a.matchCase && (this.matchCase =
null)}, evaluate:
function(
a){
a instanceof
OpenLayers.Feature.Vector && (
a =
a.attributes); var
b = !1;
a =
a[this.property];
switch (this.type){
case OpenLayers.Filter.Comparison.EQUAL_TO:
b = this.value;
325 b = this.matchCase ||
"string" != typeof
a ||
"string" != typeof
b?
a ==
b:
a.toUpperCase() ==
b.toUpperCase();
break;
case OpenLayers.Filter.Comparison.NOT_EQUAL_TO:
b = this.value;
b = this.matchCase ||
"string" != typeof
a ||
"string" != typeof
b?
a !=
b:
a.toUpperCase() !=
b.toUpperCase();
break;
case OpenLayers.Filter.Comparison.LESS_THAN:
b =
a < this.value;
break;
case OpenLayers.Filter.Comparison.GREATER_THAN:
b =
a > this.value;
break;
case OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO:
b =
a <= this.value;
break;
case OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO:
b =
326 a >= this.value;
break;
case OpenLayers.Filter.Comparison.BETWEEN:
b =
a >= this.lowerBoundary &&
a <= this.upperBoundary;
break;
case OpenLayers.Filter.Comparison.LIKE:
b = RegExp(this.value,
"gi").test(
a);
break;
case OpenLayers.Filter.Comparison.IS_NULL:
b =
null ===
a}
return b}, value2regex:
function(
a,
b,
c){
if (
"." ==
a)
throw Error(
"'.' is an unsupported wildCard character for OpenLayers.Filter.Comparison");
a =
a?
a:
"*";
b =
b?
b:
"."; this.value = this.value.replace(RegExp(
"\\" + (
c?
c:
"!") +
"(.|$)",
"g"),
"\\$1"); this.value = this.value.replace(RegExp(
"\\" +
327 b,
"g"),
"."); this.value = this.value.replace(RegExp(
"\\" +
a,
"g"),
".*"); this.value = this.value.replace(RegExp(
"\\\\.\\*",
"g"),
"\\" +
a);
return this.value = this.value.replace(RegExp(
"\\\\\\.",
"g"),
"\\" +
b)}, regex2value:
function(){var
a = this.value,
a =
a.replace(/!/
g,
"!!"),
a =
a.replace(/(\\)?\\\./
g,
function(
a,
c){
return c?
a:
"!."}),
a =
a.replace(/(\\)?\\\*/
g,
function(
a,
c){return c?a:
"!*"}),
a =
a.replace(/\\\\/
g,
"\\");
return a =
a.replace(/\.\*/
g,
"*")},
clone:
function(){
return OpenLayers.Util.extend(
new OpenLayers.Filter.Comparison,
328 this)}, CLASS_NAME:
"OpenLayers.Filter.Comparison"});
OpenLayers.Filter.Comparison.EQUAL_TO =
"==";
OpenLayers.Filter.Comparison.NOT_EQUAL_TO =
"!=";
OpenLayers.Filter.Comparison.LESS_THAN =
"<";
OpenLayers.Filter.Comparison.GREATER_THAN =
">";
OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO =
"<=";
OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO =
">=";
OpenLayers.Filter.Comparison.BETWEEN =
"..";
OpenLayers.Filter.Comparison.LIKE =
"~";
OpenLayers.Filter.Comparison.IS_NULL =
"NULL";
OpenLayers.Format.Filter =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.0.0", CLASS_NAME:
"OpenLayers.Format.Filter"});
OpenLayers.Filter.Function =
OpenLayers.Class(
OpenLayers.Filter, {name:null, params:null, CLASS_NAME:
"OpenLayers.Filter.Function"});
OpenLayers.Date = {dateRegEx:/^(?:(\
d{4})(?:-(\
d{2})(?:-(\
d{2}))?)?)?(?:(?:
T(\
d{1,2}):(\
d{2}):(\
d{2}(?:\.\
d+)?)(
Z|(?:[+-]\
d{1,2}(?::(\
d{2}))?)))|
Z)?
$/, toISOString:function(){
return"toISOString"in
Date.prototype?
function(
a){
return a.toISOString()}:
function(
a){
return isNaN(
a.getTime())?
"Invalid Date":
a.getUTCFullYear() +
"-" +
OpenLayers.Number.zeroPad(
a.getUTCMonth() + 1, 2) +
"-" +
OpenLayers.Number.zeroPad(
a.getUTCDate(), 2) +
"T" +
OpenLayers.Number.zeroPad(
a.getUTCHours(), 2) +
":" +
OpenLayers.Number.zeroPad(
a.getUTCMinutes(),
329 2) +
":" +
OpenLayers.Number.zeroPad(
a.getUTCSeconds(), 2) +
"." +
OpenLayers.Number.zeroPad(
a.getUTCMilliseconds(), 3) +
"Z"}}(),
parse:function(
a){var
b;
if ((
a =
a.match(
this.dateRegEx)) && (
a[1] ||
a[7])){b = parseInt(a[1], 10) || 0; var c = parseInt(a[2], 10) - 1 || 0, d = parseInt(a[3], 10) || 1; b = new Date(Date.UTC(b, c, d)); if (c = a[7]){var d = parseInt(a[4], 10), e = parseInt(a[5], 10), f = parseFloat(a[6]), g = f | 0, f = Math.round(1E3 * (f - g)); b.setUTCHours(d, e, g, f);
"Z" !== c && (c = parseInt(c, 10), a = parseInt(a[8], 10) || 0, a = - 1E3 * (60 * 60 * c + 60 * a), b = new Date(b.getTime() +
330 a))}}
else b =
new Date(
"invalid");
return b}};
OpenLayers.Format.Filter.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{ogc:
"http://www.opengis.net/ogc", gml:
"http://www.opengis.net/gml", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, defaultPrefix:
"ogc", schemaLocation:
null, initialize:
function(
a){OpenLayers.Format.XML.prototype.initialize.apply(this, [a])}, read:
function(
a){var b = {};
this.readers.ogc.Filter.apply(
this, [
a,
b]);
return b.filter}, readers:{ogc:{_expression:
function(
a){
for (var
b =
"",
c =
a.firstChild;
c;
c =
331 c.nextSibling)
switch (
c.nodeType){
case 1:
a = this.readNode(
c);
a.property?
b +=
"${" +
a.property +
"}":
void 0 !==
a.value && (
b +=
a.value);
break;
case 3:
case 4:
b +=
c.nodeValue}
return b},
Filter:
function(
a,
b){var
c = {fids:[], filters:[]}; this.readChildNodes(
a,
c); 0 <
c.fids.length?
b.filter =
new OpenLayers.Filter.FeatureId({fids:
c.fids}):0 <
c.filters.length && (
b.filter =
c.filters[0])},
FeatureId:function(
a,
b){var
c =
a.getAttribute(
"fid");
c &&
b.fids.push(
c)}, And:
function(
a,
b){var
c =
new OpenLayers.Filter.Logical({type:
OpenLayers.Filter.Logical.AND});
332 this.readChildNodes(
a,
c);
b.filters.push(
c)}, Or:
function(
a,
b){var
c =
new OpenLayers.Filter.Logical({type:
OpenLayers.Filter.Logical.OR}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, Not:
function(
a,
b){var
c =
new OpenLayers.Filter.Logical({type:
OpenLayers.Filter.Logical.NOT}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsLessThan:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.LESS_THAN}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsGreaterThan:
function(
a,
333 b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.GREATER_THAN}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsLessThanOrEqualTo:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsGreaterThanOrEqualTo:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO}); this.readChildNodes(
a,
c);
b.filters.push(
c)},
334 PropertyIsBetween:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.BETWEEN}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, Literal:
function(
a,
b){
b.value =
OpenLayers.String.numericIf(this.getChildValue(
a), !0)}, PropertyName:
function(
a,
b){
b.property = this.getChildValue(
a)}, LowerBoundary:
function(
a,
b){
b.lowerBoundary =
OpenLayers.String.numericIf(this.readers.ogc._expression.call(
this,
a), !0)}, UpperBoundary:
function(
a,
b){
b.upperBoundary =
OpenLayers.String.numericIf(this.readers.ogc._expression.call(
this,
335 a), !0)}, Intersects:
function(
a,
b){this.readSpatial(
a,
b,
OpenLayers.Filter.Spatial.INTERSECTS)}, Within:
function(
a,
b){this.readSpatial(
a,
b,
OpenLayers.Filter.Spatial.WITHIN)}, Contains:
function(
a,
b){this.readSpatial(
a,
b,
OpenLayers.Filter.Spatial.CONTAINS)}, DWithin:
function(
a,
b){this.readSpatial(
a,
b,
OpenLayers.Filter.Spatial.DWITHIN)}, Distance:
function(
a,
b){
b.distance = parseInt(this.getChildValue(
a));
b.distanceUnits =
a.getAttribute(
"units")},
Function:
function(
a,
b){}, PropertyIsNull:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.IS_NULL});
336 this.readChildNodes(
a,
c);
b.filters.push(
c)}}}, readSpatial:
function(
a,
b,
c){
c =
new OpenLayers.Filter.Spatial({type:
c}); this.readChildNodes(
a,
c);
c.value =
c.components[0];
delete c.components;
b.filters.push(
c)}, encodeLiteral:
function(
a){
a instanceof
Date && (
a =
OpenLayers.Date.toISOString(
a));
return a}, writeOgcExpression:
function(
a,
b){
a instanceof
OpenLayers.Filter.Function?this.writeNode(
"Function",
a,
b):
this.writeNode(
"Literal",
a,
b);
return b}, write:
function(
a){
return this.writers.ogc.Filter.apply(
this, [
a])},
337 writers:{ogc:{
Filter:
function(
a){var
b = this.createElementNSPlus(
"ogc:Filter"); this.writeNode(this.getFilterType(
a),
a,
b);
return b}, _featureIds:
function(
a){
for (var
b = this.createDocumentFragment(),
c = 0,
d =
a.fids.length;
c <
d; ++
c)this.writeNode(
"ogc:FeatureId",
a.fids[
c],
b);
return b},
FeatureId:
function(
a){
return this.createElementNSPlus(
"ogc:FeatureId", {attributes:{fid:
a}})}, And:
function(
a){
for (var
b = this.createElementNSPlus(
"ogc:And"),
c,
d = 0,
e =
a.filters.length;
d <
e; ++
d)
c =
a.filters[
d], this.writeNode(this.getFilterType(
c),
338 c,
b);
return b}, Or:
function(
a){
for (var
b = this.createElementNSPlus(
"ogc:Or"),
c,
d = 0,
e =
a.filters.length;
d <
e; ++
d)
c =
a.filters[
d], this.writeNode(this.getFilterType(
c),
c,
b);
return b}, Not:
function(
a){var
b = this.createElementNSPlus(
"ogc:Not");
a =
a.filters[0]; this.writeNode(this.getFilterType(
a),
a,
b);
return b}, PropertyIsLessThan:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsLessThan"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsGreaterThan:
function(
a){var
b =
339 this.createElementNSPlus(
"ogc:PropertyIsGreaterThan"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsLessThanOrEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsLessThanOrEqualTo"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsGreaterThanOrEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsGreaterThanOrEqualTo"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
340 return b}, PropertyIsBetween:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsBetween"); this.writeNode(
"PropertyName",
a,
b); this.writeNode(
"LowerBoundary",
a,
b); this.writeNode(
"UpperBoundary",
a,
b);
return b}, PropertyName:
function(
a){
return this.createElementNSPlus(
"ogc:PropertyName", {value:
a.property})}, Literal:
function(
a){
return this.createElementNSPlus(
"ogc:Literal", {value:(this.encodeLiteral ||
OpenLayers.Format.Filter.v1.prototype.encodeLiteral)(
a)})}, LowerBoundary:
function(
a){var
b = this.createElementNSPlus(
"ogc:LowerBoundary");
341 this.writeOgcExpression(
a.lowerBoundary,
b);
return b}, UpperBoundary:
function(
a){var
b = this.createElementNSPlus(
"ogc:UpperBoundary"); this.writeNode(
"Literal",
a.upperBoundary,
b);
return b},
INTERSECTS:
function(
a){
return this.writeSpatial(
a,
"Intersects")},
WITHIN:
function(
a){
return this.writeSpatial(
a,
"Within")},
CONTAINS:
function(
a){
return this.writeSpatial(
a,
"Contains")},
DWITHIN:
function(
a){var
b = this.writeSpatial(
a,
"DWithin"); this.writeNode(
"Distance",
a,
b);
return b}, Distance:
function(
a){
return this.createElementNSPlus(
"ogc:Distance",
342 {attributes:{units:
a.distanceUnits}, value:
a.distance})},
Function:
function(
a){var
b = this.createElementNSPlus(
"ogc:Function", {attributes:{name:
a.name}});
a =
a.params;
for (var
c = 0,
d =
a.length;
c <
d;
c++)this.writeOgcExpression(
a[
c],
b);
return b}, PropertyIsNull:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsNull"); this.writeNode(
"PropertyName",
a,
b);
return b}}}, getFilterType:
function(
a){var
b = this.filterMap[
a.type];
if (!
b)
throw"Filter writing not supported for rule type: " +
a.type;
return b}, filterMap:{
"&&":
"And",
343 "||":
"Or",
"!":
"Not",
"==":
"PropertyIsEqualTo",
"!=":
"PropertyIsNotEqualTo",
"<":
"PropertyIsLessThan",
">":
"PropertyIsGreaterThan",
"<=":
"PropertyIsLessThanOrEqualTo",
">=":
"PropertyIsGreaterThanOrEqualTo",
"..":
"PropertyIsBetween",
"~":
"PropertyIsLike", NULL:
"PropertyIsNull",
BBOX:
"BBOX",
DWITHIN:
"DWITHIN",
WITHIN:
"WITHIN",
CONTAINS:
"CONTAINS",
INTERSECTS:
"INTERSECTS", FID:
"_featureIds"}, CLASS_NAME:
"OpenLayers.Format.Filter.v1"});
OpenLayers.Geometry =
OpenLayers.Class({id:
null, parent:
null, bounds:
null, initialize:
function(){this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, destroy:
function(){this.bounds = this.
id =
null},
clone:
function(){
return new OpenLayers.Geometry}, setBounds:
function(
a){
a && (this.bounds =
a.clone())}, clearBounds:
function(){this.bounds =
null; this.parent && this.parent.clearBounds()}, extendBounds:
function(
a){this.getBounds()?this.bounds.extend(
a):this.setBounds(
a)}, getBounds:
function(){
null == this.bounds && this.calculateBounds();
344 return this.bounds}, calculateBounds:
function(){}, distanceTo:
function(
a,
b){}, getVertices:
function(
a){}, atPoint:
function(
a,
b,
c){var
d = !1;
null != this.getBounds() &&
null !=
a && (
b =
null !=
b?
b:0,
c =
null !=
c?
c:0,
d = (
new OpenLayers.Bounds(this.bounds.left -
b,
this.bounds.bottom -
c,
this.bounds.right +
b,
this.bounds.top +
c)).containsLonLat(
a));
return d},
getLength:
function(){
return 0}, getArea:
function(){
return 0}, getCentroid:
function(){
return null}, toString:
function(){
return OpenLayers.Format &&
OpenLayers.Format.WKT?
OpenLayers.Format.WKT.prototype.write(
new OpenLayers.Feature.Vector(
this)):
346 OpenLayers.Geometry.segmentsIntersect =
function(
a,
b,
c){var
d =
c &&
c.point;
c =
c &&
c.tolerance; var
e = !1,
f =
a.x1 -
b.x1,
g =
a.y1 -
b.y1,
h =
a.x2 -
a.x1,
k =
a.y2 -
a.y1,
l =
b.y2 -
b.y1,
m =
b.x2 -
b.x1,
n =
l *
h -
m *
k,
l =
m *
g -
l *
f,
g =
h *
g -
k *
f; 0 ==
n?0 ==
l && 0 ==
g && (
e = !0):(
f =
l /
n,
n =
g /
n, 0 <=
f && (1 >=
f && 0 <=
n && 1 >=
n) && (
d?(
h =
a.x1 +
f *
h,
n =
a.y1 +
f *
k,
e =
new OpenLayers.Geometry.Point(
h,
n)):
e = !0));
if (
c)
if (
e){
if (
d)
a:
for (
a = [
a,
b],
b = 0; 2 >
b; ++
b)
for (
f =
a[
b],
k = 1; 3 >
k; ++
k)
if (
h =
f[
"x" +
k],
n =
f[
"y" +
k],
d =
Math.sqrt(
Math.pow(
h -
e.x, 2) +
Math.pow(
n -
e.y, 2)),
d <
c){
e.x =
h;
e.y =
n;
break a}}
else a:
for (
a =
347 [
a,
b],
b = 0; 2 >
b; ++
b)
for (
h =
a[
b],
n =
a[(
b + 1) % 2],
k = 1; 3 >
k; ++
k)
if (
f = {
x:
h[
"x" +
k],
y:
h[
"y" +
k]},
g =
OpenLayers.Geometry.distanceToSegment(
f,
n),
g.distance <
c){
e =
d?
new OpenLayers.Geometry.Point(
f.x,
f.y):!0;
break a}
return e};
OpenLayers.Geometry.distanceToSegment =
function(
a,
b){var
c =
OpenLayers.Geometry.distanceSquaredToSegment(
a,
b);
c.distance =
Math.sqrt(
c.distance);
return c};
348 OpenLayers.Geometry.distanceSquaredToSegment =
function(
a,
b){var
c =
a.x,
d =
a.y,
e =
b.x1,
f =
b.y1,
g =
b.x2,
h =
b.y2,
k =
g -
e,
l =
h -
f,
m = (
k * (
c -
e) +
l * (
d -
f)) / (
Math.pow(
k, 2) +
Math.pow(
l, 2)); 0 >=
m || (1 <=
m?(
e =
g,
f =
h):(
e +=
m *
k,
f +=
m *
l));
return{distance:
Math.pow(
e -
c, 2) +
Math.pow(
f -
d, 2),
x:
e,
y:
f, along:
m}};
OpenLayers.Geometry.Point =
OpenLayers.Class(
OpenLayers.Geometry, {x:null, y:null, initialize:function(a, b){OpenLayers.Geometry.prototype.initialize.apply(this, arguments); this.x = parseFloat(a); this.y = parseFloat(b)},
clone:
function(
a){null == a && (a = new OpenLayers.Geometry.Point(this.x, this.y)); OpenLayers.Util.applyDefaults(a, this); return a}, calculateBounds:
function(){this.bounds = new OpenLayers.Bounds(this.x, this.y, this.x, this.y)}, distanceTo:
function(
a,
b){var c = !(b && !1 === b.edge) && b && b.details, d, e, f, g, h; a instanceof
349 OpenLayers.Geometry.Point?(e = this.x, f = this.y, g = a.x, h = a.y, d = Math.sqrt(Math.pow(e - g, 2) + Math.pow(f - h, 2)), d = c?{x0:e, y0:f, x1:g, y1:h, distance:d}:
d):(
d =
a.distanceTo(
this,
b),
c && (
d = {x0:
d.x1, y0:
d.y1, x1:
d.x0, y1:
d.y0, distance:
d.distance}));
return d}, equals:
function(
a){var
b = !1;
null !=
a && (
b = this.
x ==
a.x && this.
y ==
a.y || isNaN(this.
x) && isNaN(this.
y) && isNaN(
a.x) && isNaN(
a.y));
return b}, toShortString:
function(){
return this.
x +
", " + this.
y}, move:
function(
a,
b){this.
x +=
a; this.
y +=
b; this.clearBounds()}, rotate:
function(
a,
b){
a *=
350 Math.PI / 180; var
c = this.distanceTo(
b),
d =
a +
Math.atan2(this.
y -
b.y,
this.x -
b.x); this.
x =
b.x +
c *
Math.cos(
d); this.
y =
b.y +
c *
Math.sin(
d); this.clearBounds()}, getCentroid:
function(){
return new OpenLayers.Geometry.Point(this.
x, this.
y)}, resize:
function(
a,
b,
c){this.
x =
b.x +
a * (
void 0 ==
c?1:
c) * (this.
x -
b.x); this.
y =
b.y +
a * (this.
y -
b.y); this.clearBounds();
return this}, intersects:
function(
a){var
b = !1;
return b =
"OpenLayers.Geometry.Point" ==
a.CLASS_NAME?this.equals(
a):
a.intersects(
this)},
transform:function(
a,
b){
a &&
b && (
OpenLayers.Projection.transform(
this,
351 a,
b), this.bounds =
null);
return this}, getVertices:
function(
a){
return[
this]}, CLASS_NAME:
"OpenLayers.Geometry.Point"});
OpenLayers.Geometry.Collection =
OpenLayers.Class(
OpenLayers.Geometry, {components:null, componentTypes:null, initialize:function(
a){
OpenLayers.Geometry.prototype.initialize.apply(
this, arguments); this.components = [];
null !=
a && this.addComponents(
a)}, destroy:
function(){this.components.length = 0; this.components =
null;
OpenLayers.Geometry.prototype.destroy.apply(
this, arguments)},
clone:
function(){
for (var
a = eval(
"new " + this.CLASS_NAME +
"()"),
b = 0,
c = this.components.length;
b <
c;
b++)
a.addComponent(this.components[
b].
clone());
352 OpenLayers.Util.applyDefaults(
a,
this);
return a}, getComponentsString:
function(){
for (var
a = [],
b = 0,
c = this.components.length;
b <
c;
b++)
a.push(this.components[
b].toShortString());
return a.join(
",")}, calculateBounds:
function(){this.bounds =
null; var
a =
new OpenLayers.Bounds,
b = this.components;
if (
b)
for (var
c = 0,
d =
b.length;
c <
d;
c++)
a.extend(
b[
c].getBounds());
null !=
a.left && (
null !=
a.bottom &&
null !=
a.right &&
null !=
a.top) && this.setBounds(
a)}, addComponents:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
b = 0,
c =
a.length;
b <
353 c;
b++)this.addComponent(
a[
b])}, addComponent:
function(
a,
b){var
c = !1;
if (
a && (
null == this.componentTypes || - 1 <
OpenLayers.Util.indexOf(
this.componentTypes,
a.CLASS_NAME))){
if (
null !=
b &&
b < this.components.length){var
c = this.components.slice(0,
b),
d = this.components.slice(
b, this.components.length);
c.push(
a); this.components =
c.concat(
d)}
else this.components.push(
a);
a.parent =
this; this.clearBounds();
c = !0}
return c}, removeComponents:
function(
a){var
b = !1;
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
c =
a.length - 1; 0 <=
c; --
c)
b =
354 this.removeComponent(
a[
c]) ||
b;
return b}, removeComponent:
function(
a){
OpenLayers.Util.removeItem(this.components,
a); this.clearBounds();
return!0},
getLength:
function(){
for (var
a = 0,
b = 0,
c = this.components.length;
b <
c;
b++)
a += this.components[
b].getLength();
return a}, getArea:
function(){
for (var
a = 0,
b = 0,
c = this.components.length;
b <
c;
b++)
a += this.components[
b].getArea();
return a}, getGeodesicArea:
function(
a){
for (var
b = 0,
c = 0,
d = this.components.length;
c <
d;
c++)
b += this.components[
c].getGeodesicArea(
a);
return b}, getCentroid:
function(
a){
if (!
a)
return this.components.length &&
355 this.components[0].getCentroid();
a = this.components.length;
if (!
a)
return!1;
for (var
b = [],
c = [],
d = 0,
e =
Number.MAX_VALUE,
f,
g = 0;
g <
a; ++
g){
f = this.components[
g]; var
h =
f.getArea();
f =
f.getCentroid(!0); isNaN(
h) || (isNaN(
f.x) || isNaN(
f.y)) || (
b.push(
h),
d +=
h,
e =
h <
e && 0 <
h?
h:
e,
c.push(
f))}
a =
b.length;
if (0 ===
d){
for (
g = 0;
g <
a; ++
g)
b[
g] = 1;
d =
b.length}
else{
for (
g = 0;
g <
a; ++
g)
b[
g] /=
e;
d /=
e}
for (var
k =
e = 0,
g = 0;
g <
a; ++
g)
f =
c[
g],
h =
b[
g],
e +=
f.x *
h,
k +=
f.y *
h;
return new OpenLayers.Geometry.Point(
e /
d,
k /
d)}, getGeodesicLength:
function(
a){
for (var
b = 0,
356 c = 0,
d = this.components.length;
c <
d;
c++)
b += this.components[
c].getGeodesicLength(
a);
return b}, move:
function(
a,
b){
for (var
c = 0,
d = this.components.length;
c <
d;
c++)this.components[
c].move(
a,
b)}, rotate:
function(
a,
b){
for (var
c = 0,
d = this.components.length;
c <
d; ++
c)this.components[
c].rotate(
a,
b)}, resize:
function(
a,
b,
c){
for (var
d = 0;
d < this.components.length; ++
d)this.components[
d].resize(
a,
b,
c);
return this}, distanceTo:
function(
a,
b){
for (var
c = !(
b && !1 ===
b.edge) &&
b &&
b.details,
d,
e,
f,
g =
Number.POSITIVE_INFINITY,
h = 0,
k =
this.components.length;
h <
357 k && !(
d =
this.components[
h].distanceTo(
a,
b),
f =
c?
d.distance:
d,
f <
g && (
g =
f,
e =
d, 0 ==
g)); ++
h);
return e}, equals:
function(
a){var
b = !0;
if (
a &&
a.CLASS_NAME &&
this.CLASS_NAME ==
a.CLASS_NAME)
if (
OpenLayers.Util.isArray(
a.components) &&
a.components.length ==
this.components.length)
for (var
c = 0,
d = this.components.length;
c <
d; ++
c){
if (!this.components[
c].equals(
a.components[
c])){
b = !1;
break}}
else b = !1;
else b = !1;
return b},
transform:
function(
a,
b){
if (
a &&
b){
for (var
c = 0,
d = this.components.length;
c <
d;
c++)this.components[
c].transform(
a,
358 b); this.bounds =
null}
return this}, intersects:
function(
a){
for (var
b = !1,
c = 0,
d = this.components.length;
c <
d && !(
b =
a.intersects(
this.components[
c])); ++
c);
return b}, getVertices:
function(
a){
for (var
b = [],
c = 0,
d = this.components.length;
c <
d; ++
c)
Array.prototype.push.apply(
b, this.components[
c].getVertices(
a));
return b}, CLASS_NAME:
"OpenLayers.Geometry.Collection"});
OpenLayers.Geometry.MultiPoint =
OpenLayers.Class(
OpenLayers.Geometry.Collection, {componentTypes:[
"OpenLayers.Geometry.Point"], addPoint:function(
a,
b){this.addComponent(
a,
b)}, removePoint:
function(
a){this.removeComponent(
a)}, CLASS_NAME:
"OpenLayers.Geometry.MultiPoint"});
OpenLayers.Geometry.Curve =
OpenLayers.Class(
OpenLayers.Geometry.MultiPoint, {componentTypes:[
"OpenLayers.Geometry.Point"],
getLength:function(){var
a = 0;
if (this.components && 1 < this.components.length)
for (var
b = 1,
c = this.components.length;
b <
c;
b++)
a +=
this.components[
b - 1].distanceTo(
this.components[
b]);
return a}, getGeodesicLength:
function(
a){var
b =
this;
if (
a){var
c =
new OpenLayers.Projection(
"EPSG:4326");
c.equals(
a) || (
b = this.
clone().transform(a,
c))}
a = 0;
if (
b.components && 1 <
b.components.length)
for (var
d,
e = 1,
f =
b.components.length;
e <
359 f;
e++)
c =
b.components[
e - 1],
d =
b.components[
e],
a +=
OpenLayers.Util.distVincenty({lon:
c.x, lat:
c.y}, {lon:
d.x, lat:
d.y});
return 1E3 *
a}, CLASS_NAME:
"OpenLayers.Geometry.Curve"});
OpenLayers.Geometry.LineString =
OpenLayers.Class(
OpenLayers.Geometry.Curve, {removeComponent:function(
a){var
b = this.components && 2 < this.components.length;
b &&
OpenLayers.Geometry.Collection.prototype.removeComponent.apply(
this, arguments);
return b}, intersects:
function(
a){var
b = !1,
c =
a.CLASS_NAME;
if (
"OpenLayers.Geometry.LineString" ==
c ||
"OpenLayers.Geometry.LinearRing" ==
c ||
"OpenLayers.Geometry.Point" ==
c){var
d = this.getSortedSegments();
a =
"OpenLayers.Geometry.Point" ==
c?[{x1:
a.x, y1:
a.y, x2:
a.x, y2:
a.y}]:
a.getSortedSegments();
360 var
e,
f,
g,
h,
k,
l,
m,
n = 0,
p =
d.length;
a:
for (;
n <
p; ++
n){
c =
d[
n];
e =
c.x1;
f =
c.x2;
g =
c.y1;
h =
c.y2; var
q = 0,
r =
a.length;
for (;
q <
r; ++
q){
k =
a[
q];
if (
k.x1 >
f)
break;
if (!(
k.x2 <
e || (
l =
k.y1,
m =
k.y2,
Math.min(
l,
m) >
Math.max(
g,
h) ||
Math.max(
l,
m) <
Math.min(
g,
h) || !
OpenLayers.Geometry.segmentsIntersect(
c,
k)))){
b = !0;
break a}}}}
else b =
a.intersects(
this);
return b}, getSortedSegments:
function(){
for (var
a = this.components.length - 1,
b =
Array(
a),
c,
d,
e = 0;
e <
a; ++
e)
c = this.components[
e],
d = this.components[
e + 1],
b[
e] =
c.x <
d.x?{x1:
c.
x, y1:
c.
y, x2:
d.
x, y2:
d.
y}:
361{x1:
d.x, y1:
d.y, x2:
c.x, y2:
c.y};
return b.sort(
function(
a,
b){
return a.x1 -
b.x1})}, splitWithSegment:
function(
a,
b){
for (var
c = !(
b && !1 ===
b.edge),
d =
b &&
b.tolerance,
e = [],
f =
this.getVertices(),
g = [],
h = [],
k = !1,
l,
m,
n,
p = {point:!0, tolerance:d},
q =
null,
r = 0,
s =
f.length - 2;
r <=
s; ++
r)
if (
d =
f[
r],
g.push(
d.clone()),
l =
f[
r + 1],
m = {x1:d.x, y1:d.y, x2:l.x, y2:l.y},
m =
OpenLayers.Geometry.segmentsIntersect(
a,
m,
p),
m instanceof
OpenLayers.Geometry.Point && ((
n =
m.x ===
a.x1 &&
m.y ===
a.y1 ||
m.x ===
a.x2 &&
m.y ===
a.y2 ||
m.equals(
d) ||
m.equals(
l)?!0:!1) ||
c))
m.equals(
h[
h.length -
3621]) ||
h.push(
m.clone()), 0 ===
r &&
m.equals(
d) ||
m.equals(
l) || (
k = !0,
m.equals(
d) ||
g.push(
m),
e.push(
new OpenLayers.Geometry.LineString(
g)),
g = [
m.clone()]);
k && (
g.push(
l.clone()),
e.push(
new OpenLayers.Geometry.LineString(
g)));
if (0 <
h.length)var
t =
a.x1 <
a.x2?1: - 1,
u =
a.y1 <
a.y2?1: - 1,
q = {lines:
e, points:
h.sort(
function(
a,
b){
return t *
a.x -
t *
b.x ||
u *
a.y -
u *
b.y})};
return q}, split:
function(
a,
b){var
c =
null,
d =
b &&
b.mutual,
e,
f,
g,
h;
if (
a instanceof
OpenLayers.Geometry.LineString){var
k = this.getVertices(),
l,
m,
n,
p,
q,
r = [];
g = [];
for (var
s =
363 0,
t =
k.length - 2;
s <=
t; ++
s){
l =
k[
s];
m =
k[
s + 1];
n = {x1:
l.x, y1:
l.y, x2:
m.x, y2:
m.y};
h =
h || [
a];
d &&
r.push(
l.clone());
for (var
u = 0;
u <
h.length; ++
u)
if (
p =
h[
u].splitWithSegment(
n,
b))
if (
q =
p.lines, 0 <
q.length && (
q.unshift(
u, 1),
Array.prototype.splice.apply(
h,
q),
u +=
q.length - 2),
d)
for (var
v = 0,
w =
p.points.length;
v <
w; ++
v)
q =
p.points[
v],
q.equals(
l) || (
r.push(
q),
g.push(
new OpenLayers.Geometry.LineString(
r)),
r =
q.equals(
m)?[]:[
q.clone()])}
d && (0 <
g.length && 0 <
r.length) && (
r.push(
m.clone()),
g.push(
new OpenLayers.Geometry.LineString(
r)))}
else c =
364 a.splitWith(
this,
b);
h && 1 <
h.length?
f = !0:
h = [];
g && 1 <
g.length?
e = !0:
g = [];
if (
f ||
e)
c =
d?[
g,
h]:
h;
return c}, splitWith:
function(
a,
b){
return a.split(
this,
b)}, getVertices:
function(
a){
return!0 ===
a?[this.components[0], this.components[this.components.length - 1]]:!1 ===
a?this.components.slice(1, this.components.length - 1):this.components.slice()}, distanceTo:
function(
a,
b){var
c = !(
b && !1 ===
b.edge) &&
b &&
b.details,
d,
e = {},
f =
Number.POSITIVE_INFINITY;
if (
a instanceof
OpenLayers.Geometry.Point){
for (var
g = this.getSortedSegments(),
365 h =
a.x,
k =
a.y,
l,
m = 0,
n =
g.length;
m <
n; ++
m)
if (
l =
g[
m],
d =
OpenLayers.Geometry.distanceToSegment(
a,
l),
d.distance <
f){
if (
f =
d.distance,
e =
d, 0 ===
f)
break}
else if (
l.x2 >
h && (
k >
l.y1 &&
k <
l.y2 ||
k < l.y1 && k > l.y2))
break;
e =
c?{distance:
e.distance, x0:
e.x, y0:
e.y, x1:
h, y1:
k}:
e.distance}
else if (
a instanceof
OpenLayers.Geometry.LineString){var
g = this.getSortedSegments(),
h =
a.getSortedSegments(),
p,
q,
r =
h.length,
s = {point:!0},
m = 0,
n =
g.length;
a:
for (;
m <
n; ++
m){
k =
g[
m];
l =
k.x1;
q =
k.y1;
for (var
t = 0;
t <
r; ++
t)
if (
d =
h[
t],
p =
OpenLayers.Geometry.segmentsIntersect(
k,
366 d,
s)){
f = 0;
e = {distance:0, x0:
p.x, y0:
p.y, x1:
p.x, y1:
p.y};
break a}
else d =
OpenLayers.Geometry.distanceToSegment({
x:
l,
y:
q},
d),
d.distance <
f && (
f =
d.distance,
e = {distance:f, x0:l, y0:q, x1:d.x, y1:d.y})}
c || (
e =
e.distance); 0 !==
f &&
k && (
d =
a.distanceTo(
new OpenLayers.Geometry.Point(
k.x2,
k.y2),
b),
m =
c?
d.distance:
d,
m <
f && (
e =
c?{distance:f, x0:d.x1, y0:d.y1, x1:d.x0, y1:d.y0}:
m))}
else e =
a.distanceTo(
this,
b),
c && (
e = {distance:
e.distance, x0:
e.x1, y0:
e.y1, x1:
e.x0, y1:
e.y0});
return e}, simplify:
function(
a){
if (
this &&
null !==
this){var
b = this.getVertices();
367 if (3 >
b.length)
return this; var
c =
function(
a,
b,
d,
k){
for (var
l = 0,
m = 0,
n =
b,
p;
n <
d;
n++){
p =
a[
b]; var
q =
a[
d],
r =
a[
n],
r =
Math.abs(0.5 * (
p.x *
q.y +
q.x *
r.y +
r.x *
p.y -
q.x *
p.y -
r.x *
q.y -
p.x *
r.y));
p =
Math.sqrt(
Math.pow(
p.x -
q.x, 2) +
Math.pow(
p.y -
q.y, 2));
p = 2 * (
r /
p);
p >
l && (
l =
p,
m =
n)}
l >
k &&
m !=
b && (
e.push(
m),
c(
a,
b,
m,
k),
c(
a,
m,
d,
k))},
d =
b.length - 1,
e = [];
e.push(0);
for (
e.push(
d);
b[0].equals(
b[
d]); )
d--,
e.push(
d);
c(
b, 0,
d,
a);
a = [];
e.sort(
function(
a,
b){
return a -
b});
for (
d = 0;
d <
e.length;
d++)
a.push(
b[
e[
d]]);
return new OpenLayers.Geometry.LineString(
a)}
return this},
368 CLASS_NAME:
"OpenLayers.Geometry.LineString"});
OpenLayers.Geometry.MultiLineString =
OpenLayers.Class(
OpenLayers.Geometry.Collection, {componentTypes:[
"OpenLayers.Geometry.LineString"], split:function(
a,
b){
for (var
c =
null,
d =
b &&
b.mutual,
e,
f,
g,
h,
k = [],
l = [
a],
m = 0,
n =
this.components.length;
m <
n; ++
m){f = this.components[m]; g = !1; for (var p = 0; p < l.length; ++p)if (e = f.split(l[p], b)){if (d){g = e[0]; for (var q = 0, r = g.length; q < r; ++q)0 === q && k.length?k[k.length - 1].addComponent(g[q]):k.push(new OpenLayers.Geometry.MultiLineString([g[q]])); g = !0; e = e[1]}if (e.length){e.unshift(p,
369 1); Array.prototype.splice.apply(l, e); break}}
g || (
k.length?
k[
k.length - 1].addComponent(
f.clone()):
k = [
new OpenLayers.Geometry.MultiLineString(
f.clone())])}
k && 1 <
k.length?
g = !0:
k = [];
l && 1 <
l.length?
h = !0:
l = [];
if (
g ||
h)
c =
d?[
k,
l]:
l;
return c}, splitWith:
function(
a,
b){var
c =
null,
d =
b &&
b.mutual,
e,
f,
g,
h,
k,
l;
if (
a instanceof
OpenLayers.Geometry.LineString){
l = [];
k = [
a];
for (var
m = 0,
n = this.components.length;
m <
n; ++
m){
g = !1;
f = this.components[
m];
for (var
p = 0;
p <
k.length; ++
p)
if (
e =
k[
p].split(
f,
b)){
d && (
g =
e[0],
g.length && (
g.unshift(
p,
370 1),
Array.prototype.splice.apply(
k,
g),
p +=
g.length - 2),
e =
e[1], 0 ===
e.length && (
e = [
f.clone()]));
g = 0;
for (var
q =
e.length;
g <
q; ++
g)0 ===
g &&
l.length?
l[
l.length - 1].addComponent(
e[
g]):
l.push(
new OpenLayers.Geometry.MultiLineString([
e[
g]]));
g = !0}
g || (
l.length?
l[
l.length - 1].addComponent(
f.clone()):
l = [
new OpenLayers.Geometry.MultiLineString([
f.clone()])])}}
else c =
a.split(
this);
k && 1 <
k.length?
h = !0:
k = [];
l && 1 <
l.length?
g = !0:
l = [];
if (
h ||
g)
c =
d?[
k,
l]:
l;
return c}, CLASS_NAME:
"OpenLayers.Geometry.MultiLineString"});
OpenLayers.Geometry.LinearRing =
OpenLayers.Class(
OpenLayers.Geometry.LineString, {componentTypes:[
"OpenLayers.Geometry.Point"], addComponent:function(
a,
b){var
c = !1,
d = this.components.pop();
null ==
b &&
a.equals(
d) || (
c =
OpenLayers.Geometry.Collection.prototype.addComponent.apply(
this, arguments));
OpenLayers.Geometry.Collection.prototype.addComponent.apply(
this, [
this.components[0]]);
return c}, removeComponent:
function(
a){var
b = this.components && 3 < this.components.length;
b && (this.components.pop(),
OpenLayers.Geometry.Collection.prototype.removeComponent.apply(
this,
371 arguments),
OpenLayers.Geometry.Collection.prototype.addComponent.apply(
this, [
this.components[0]]));
return b}, move:
function(
a,
b){
for (var
c = 0,
d = this.components.length;
c <
d - 1;
c++)this.components[
c].move(
a,
b)}, rotate:
function(
a,
b){
for (var
c = 0,
d = this.components.length;
c <
d - 1; ++
c)this.components[
c].rotate(
a,
b)}, resize:
function(
a,
b,
c){
for (var
d = 0,
e = this.components.length;
d <
e - 1; ++
d)this.components[
d].resize(
a,
b,
c);
return this},
transform:
function(
a,
b){
if (
a &&
b){
for (var
c = 0,
d = this.components.length;
c <
d - 1;
c++)this.components[
c].transform(
a,
372 b); this.bounds =
null}
return this}, getCentroid:
function(){
if (this.components){var
a = this.components.length;
if (0 <
a && 2 >=
a)
return this.components[0].clone();
if (2 <
a){var
b = 0,
c = 0,
d = this.components[0].x,
e = this.components[0].y,
f = - 1 * this.getArea();
if (0 !=
f){
for (var
g = 0;
g <
a - 1;
g++)var
h = this.components[
g],
k = this.components[
g + 1],
b =
b + (
h.x +
k.x - 2 *
d) * ((
h.x -
d) * (
k.y -
e) - (
k.x -
d) * (
h.y -
e)),
c =
c + (
h.y +
k.y - 2 *
e) * ((
h.x -
d) * (
k.y -
e) - (
k.x -
d) * (
h.y -
e));
b =
d +
b / (6 *
f);
a =
e +
c / (6 *
f)}
else{
for (
g = 0;
g <
a - 1;
g++)
b += this.components[
g].
x,
c += this.components[
g].
y;
373 b /=
a - 1;
a =
c / (
a - 1)}
return new OpenLayers.Geometry.Point(
b,
a)}
return null}}, getArea:
function(){var
a = 0;
if (this.components && 2 < this.components.length){
for (var
b =
a = 0,
c = this.components.length;
b <
c - 1;
b++)var
d = this.components[
b],
e = this.components[
b + 1],
a =
a + (
d.x +
e.x) * (
e.y -
d.y);
a = -
a / 2}
return a}, getGeodesicArea:
function(
a){var
b =
this;
if (
a){var
c =
new OpenLayers.Projection(
"EPSG:4326");
c.equals(
a) || (
b = this.
clone().transform(a,
c))}
a = 0;
c =
b.components &&
b.components.length;
if (2 <
c){
for (var
d,
e,
f = 0;
f <
c - 1;
f++)
d =
b.components[
f],
374 e =
b.components[
f + 1],
a +=
OpenLayers.Util.rad(
e.x -
d.x) * (2 +
Math.sin(
OpenLayers.Util.rad(
d.y)) +
Math.sin(
OpenLayers.Util.rad(
e.y)));
a = 40680631590769 *
a / 2}
return a},
containsPoint:
function(
a){var
b =
OpenLayers.Number.limitSigDigs,
c =
b(
a.x, 14);
a =
b(
a.y, 14);
for (var
d = this.components.length - 1,
e,
f,
g,
h,
k,
l = 0,
m = 0;
m <
d; ++
m)
if (
e = this.components[
m],
g =
b(
e.x, 14),
e =
b(
e.y, 14),
f =
this.components[
m + 1],
h =
b(
f.x, 14),
f =
b(
f.y, 14),
e ==
f){
if (
a ==
e && (
g <= h && c >=
g &&
c <= h || g >=
h &&
c <= g && c >=
h)){
l = - 1;
break}}
else{
k =
b((
a -
f) * ((
h -
g) / (
f -
e)) +
h, 14);
if (
k ==
376 d && !(
b =
a.components[
c].intersects(
this)); ++
c);
return b}, getVertices:
function(
a){
return!0 ===
a?[]:this.components.slice(0, this.components.length - 1)}, CLASS_NAME:
"OpenLayers.Geometry.LinearRing"});
OpenLayers.Geometry.Polygon =
OpenLayers.Class(
OpenLayers.Geometry.Collection, {componentTypes:[
"OpenLayers.Geometry.LinearRing"], getArea:function(){var
a = 0;
if (this.components && 0 < this.components.length)
for (var
a =
a +
Math.abs(
this.components[0].getArea()),
b = 1,
c =
this.components.length;
b <
c;
b++)
a -=
Math.abs(
this.components[
b].getArea());
return a}, getGeodesicArea:
function(
a){var
b = 0;
if (this.components && 0 < this.components.length)
for (var
b =
b +
Math.abs(
this.components[0].getGeodesicArea(
a)),
c = 1,
d =
this.components.length;
c <
377 d;
c++)
b -=
Math.abs(this.components[
c].getGeodesicArea(
a));
return b},
containsPoint:
function(
a){var
b = this.components.length,
c = !1;
if (0 <
b && (
c = this.components[0].
containsPoint(
a), 1 !==
c &&
c && 1 <
b))
for (var
d,
e = 1;
e <
b; ++
e)
if (
d = this.components[
e].
containsPoint(
a)){
c = 1 ===
d?1:!1;
break}
return c}, intersects:
function(
a){var
b = !1,
c,
d;
if (
"OpenLayers.Geometry.Point" ==
a.CLASS_NAME)
b = this.
containsPoint(a);
else if (
"OpenLayers.Geometry.LineString" ==
a.CLASS_NAME ||
"OpenLayers.Geometry.LinearRing" ==
a.CLASS_NAME){
c = 0;
for (
d =
378 this.components.length;
c <
d && !(
b =
a.intersects(
this.components[
c])); ++
c);
if (!
b)
for (
c = 0,
d =
a.components.length;
c <
d && !(
b =
this.containsPoint(
a.components[
c])); ++
c); }
else for (
c = 0,
d =
a.components.length;
c <
d && !(
b =
this.intersects(
a.components[
c])); ++
c);
if (!
b &&
"OpenLayers.Geometry.Polygon" ==
a.CLASS_NAME){var
e = this.components[0];
c = 0;
for (
d =
e.components.length;
c <
d && !(
b =
a.containsPoint(
e.components[
c])); ++
c); }
return b}, distanceTo:
function(
a,
b){
return b && !1 ===
b.edge && this.intersects(
a)?0:
OpenLayers.Geometry.Collection.prototype.distanceTo.apply(
this,
379 [
a,
b])}, CLASS_NAME:
"OpenLayers.Geometry.Polygon"});
OpenLayers.Geometry.Polygon.createRegularPolygon =
function(
a,
b,
c,
d){var
e =
Math.PI * (1 /
c - 0.5);
d && (
e +=
d / 180 *
Math.PI);
for (var
f,
g = [],
h = 0;
h <
c; ++
h)
f =
e + 2 *
h *
Math.PI /
c,
d =
a.x +
b *
Math.cos(
f),
f =
a.y +
b *
Math.sin(
f),
g.push(
new OpenLayers.Geometry.Point(
d,
f));
a =
new OpenLayers.Geometry.LinearRing(
g);
return new OpenLayers.Geometry.Polygon([
a])};
OpenLayers.Geometry.MultiPolygon =
OpenLayers.Class(
OpenLayers.Geometry.Collection, {componentTypes:[
"OpenLayers.Geometry.Polygon"], CLASS_NAME:
"OpenLayers.Geometry.MultiPolygon"});
OpenLayers.Format.GML =
OpenLayers.Class(
OpenLayers.Format.XML, {featureNS:
"http://mapserver.gis.umn.edu/mapserver", featurePrefix:
"feature", featureName:
"featureMember", layerName:
"features", geometryName:
"geometry", collectionName:
"FeatureCollection", gmlns:
"http://www.opengis.net/gml", extractAttributes:!0, xy:!0, initialize:function(a){this.regExes = {trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}; OpenLayers.Format.XML.prototype.initialize.apply(this, [a])}, read:
function(
a){
"string" ==
380 typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a = this.getElementsByTagNameNS(a.documentElement, this.gmlns, this.featureName); for (var b = [], c = 0; c < a.length; c++){var d = this.parseFeature(a[c]); d && b.push(d)}
return b}, parseFeature:
function(
a){
for (var
b =
"MultiPolygon Polygon MultiLineString LineString MultiPoint Point Envelope".split(
" "),
c,
d,
e,
f = 0;
f <
b.length; ++
f)
if (
c =
b[
f],
d = this.getElementsByTagNameNS(
a, this.gmlns,
c), 0 <
d.length){
if (
e = this.parseGeometry[
c.toLowerCase()])
e =
e.apply(
this,
381 [
d[0]]), this.internalProjection && this.externalProjection &&
e.transform(this.externalProjection, this.internalProjection);
else throw new TypeError(
"Unsupported geometry type: " +
c);
break}var
g;
c = this.getElementsByTagNameNS(
a, this.gmlns,
"Box");
for (
f = 0;
f <
c.length; ++
f)
b =
c[
f],
d = this.parseGeometry.box.apply(
this, [
b]),
b =
b.parentNode,
"boundedBy" === (
b.localName ||
b.nodeName.split(
":").pop())?
g =
d:
e =
d.toGeometry(); var
h; this.extractAttributes && (
h = this.parseAttributes(
a));
h =
new OpenLayers.Feature.Vector(
e,
h);
h.bounds =
382 g;
h.gml = {featureType:
a.firstChild.nodeName.split(
":")[1], featureNS:
a.firstChild.namespaceURI, featureNSPrefix:
a.firstChild.prefix};
a =
a.firstChild;
for (var
k;
a && (1 !=
a.nodeType || !(
k =
a.getAttribute(
"fid") ||
a.getAttribute(
"id"))); )
a =
a.nextSibling;
h.fid =
k;
return h}, parseGeometry:{point:
function(
a){var
b,
c;
c = [];
b = this.getElementsByTagNameNS(
a, this.gmlns,
"pos"); 0 <
b.length && (
c =
b[0].firstChild.nodeValue,
c =
c.replace(this.regExes.trimSpace,
""),
c =
c.split(
this.regExes.splitSpace)); 0 ==
c.length && (
b = this.getElementsByTagNameNS(
a,
383 this.gmlns,
"coordinates"), 0 <
b.length && (
c =
b[0].firstChild.nodeValue,
c =
c.replace(this.regExes.removeSpace,
""),
c =
c.split(
","))); 0 ==
c.length && (
b = this.getElementsByTagNameNS(
a, this.gmlns,
"coord"), 0 <
b.length && (
a = this.getElementsByTagNameNS(
b[0], this.gmlns,
"X"),
b = this.getElementsByTagNameNS(
b[0], this.gmlns,
"Y"), 0 <
a.length && 0 <
b.length && (
c = [
a[0].firstChild.nodeValue,
b[0].firstChild.nodeValue]))); 2 ==
c.length && (
c[2] =
null);
return this.xy?
new OpenLayers.Geometry.Point(
c[0],
c[1],
c[2]):
new OpenLayers.Geometry.Point(
c[1],
384 c[0],
c[2])}, multipoint:
function(
a){
a = this.getElementsByTagNameNS(
a, this.gmlns,
"Point"); var
b = [];
if (0 <
a.length)
for (var
c,
d = 0;
d <
a.length; ++
d)(
c = this.parseGeometry.point.apply(
this, [
a[
d]])) &&
b.push(
c);
return new OpenLayers.Geometry.MultiPoint(
b)}, linestring:
function(
a,
b){var
c,
d;
d = []; var
e = [];
c = this.getElementsByTagNameNS(
a, this.gmlns,
"posList");
if (0 <
c.length){
d = this.getChildValue(
c[0]);
d =
d.replace(this.regExes.trimSpace,
"");
d =
d.split(this.regExes.splitSpace); var
f = parseInt(
c[0].getAttribute(
"dimension")),
385 g,
h,
k;
for (
c = 0;
c <
d.length /
f; ++
c)
g =
c *
f,
h =
d[
g],
k =
d[
g + 1],
g = 2 ==
f?
null:
d[
g + 2],
this.xy?
e.push(new
OpenLayers.
Geometry.
Point(
h,
k,
g)):
e.push(new
OpenLayers.
Geometry.
Point(
k,
h,
g))}
if (0 ==
d.length && (
c =
this.getElementsByTagNameNS(
a,
this.gmlns,
"coordinates"), 0 <
c.length))
for (
d =
this.getChildValue(
c[0]),
d =
d.replace(
this.regExes.trimSpace,
""),
d =
d.replace(
this.regExes.trimComma,
","),
f =
d.split(
this.regExes.splitSpace),
c = 0;
c <
f.length; ++
c)
d =
f[
c].split(
","), 2 ==
d.length && (
d[2] =
null),
this.xy?
e.push(
new OpenLayers.Geometry.Point(
d[0],
386 d[1],
d[2])):
e.push(
new OpenLayers.Geometry.Point(
d[1],
d[0],
d[2]));
d =
null; 0 !=
e.length && (
d =
b?
new OpenLayers.Geometry.LinearRing(
e):
new OpenLayers.Geometry.LineString(
e));
return d}, multilinestring:
function(
a){
a = this.getElementsByTagNameNS(
a, this.gmlns,
"LineString"); var
b = [];
if (0 <
a.length)
for (var
c,
d = 0;
d <
a.length; ++
d)(
c = this.parseGeometry.linestring.apply(
this, [
a[
d]])) &&
b.push(
c);
return new OpenLayers.Geometry.MultiLineString(
b)}, polygon:
function(
a){
a = this.getElementsByTagNameNS(
a, this.gmlns,
"LinearRing");
387 var
b = [];
if (0 <
a.length)
for (var
c,
d = 0;
d <
a.length; ++
d)(
c = this.parseGeometry.linestring.apply(
this, [
a[
d], !0])) &&
b.push(
c);
return new OpenLayers.Geometry.Polygon(
b)}, multipolygon:
function(
a){
a = this.getElementsByTagNameNS(
a, this.gmlns,
"Polygon"); var
b = [];
if (0 <
a.length)
for (var
c,
d = 0;
d <
a.length; ++
d)(
c = this.parseGeometry.polygon.apply(
this, [
a[
d]])) &&
b.push(
c);
return new OpenLayers.Geometry.MultiPolygon(
b)}, envelope:
function(
a){var
b = [],
c,
d,
e = this.getElementsByTagNameNS(
a, this.gmlns,
"lowerCorner");
if (0 <
e.length){
c =
388[]; 0 <
e.length && (
c =
e[0].firstChild.nodeValue,
c =
c.replace(this.regExes.trimSpace,
""),
c =
c.split(
this.regExes.splitSpace)); 2 ==
c.length && (
c[2] =
null); var
f = this.xy?
new OpenLayers.Geometry.Point(
c[0],
c[1],
c[2]):
new OpenLayers.Geometry.Point(
c[1],
c[0],
c[2])}
a = this.getElementsByTagNameNS(
a, this.gmlns,
"upperCorner");
if (0 <
a.length){
c = []; 0 <
a.length && (
c =
a[0].firstChild.nodeValue,
c =
c.replace(this.regExes.trimSpace,
""),
c =
c.split(
this.regExes.splitSpace)); 2 ==
c.length && (
c[2] =
null); var
g = this.xy?
new OpenLayers.Geometry.Point(
c[0],
389 c[1],
c[2]):
new OpenLayers.Geometry.Point(
c[1],
c[0],
c[2])}
f &&
g && (
b.push(
new OpenLayers.Geometry.Point(
f.x,
f.y)),
b.push(
new OpenLayers.Geometry.Point(
g.x,
f.y)),
b.push(
new OpenLayers.Geometry.Point(
g.x,
g.y)),
b.push(
new OpenLayers.Geometry.Point(
f.x,
g.y)),
b.push(
new OpenLayers.Geometry.Point(
f.x,
f.y)),
b =
new OpenLayers.Geometry.LinearRing(
b),
d =
new OpenLayers.Geometry.Polygon([
b]));
return d}, box:
function(
a){var
b = this.getElementsByTagNameNS(
a, this.gmlns,
"coordinates"),
c =
a =
null; 0 <
b.length && (
b =
b[0].firstChild.nodeValue,
390 b =
b.split(
" "), 2 ==
b.length && (
a =
b[0].split(
","),
c =
b[1].split(
",")));
if (
null !==
a &&
null !==
c)
return new OpenLayers.Bounds(parseFloat(
a[0]), parseFloat(
a[1]), parseFloat(
c[0]), parseFloat(
c[1]))}}, parseAttributes:
function(
a){var
b = {};
a =
a.firstChild;
for (var
c,
d,
e;
a; ){
if (1 ==
a.nodeType){
a =
a.childNodes;
for (
c = 0;
c <
a.length; ++
c)
if (
d =
a[
c], 1 ==
d.nodeType)
if (
e =
d.childNodes, 1 ==
e.length){
if (
e =
e[0], 3 ==
e.nodeType || 4 ==
e.nodeType)
d =
d.prefix?
d.nodeName.split(
":")[1]:
d.nodeName,
e =
e.nodeValue.replace(this.regExes.trimSpace,
391 ""),
b[
d] =
e}
else b[
d.nodeName.split(
":").pop()] =
null;
break}
a =
a.nextSibling}
return b}, write:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
b = this.createElementNS(
"http://www.opengis.net/wfs",
"wfs:" + this.collectionName),
c = 0;
c <
a.length;
c++)
b.appendChild(
this.createFeatureXML(
a[
c]));
return OpenLayers.Format.XML.prototype.write.apply(
this, [
b])}, createFeatureXML:
function(
a){var
b = this.buildGeometryNode(
a.geometry),
c = this.createElementNS(this.featureNS, this.featurePrefix +
":" + this.geometryName);
c.appendChild(
b);
392 var
b = this.createElementNS(this.gmlns,
"gml:" + this.featureName),
d = this.createElementNS(this.featureNS, this.featurePrefix +
":" + this.layerName);
d.setAttribute(
"fid",
a.fid ||
a.id);
d.appendChild(
c);
for (var
e in
a.attributes){var
c = this.createTextNode(
a.attributes[
e]),
f =
e.substring(
e.lastIndexOf(
":") + 1),
f = this.createElementNS(this.featureNS, this.featurePrefix +
":" +
f);
f.appendChild(
c);
d.appendChild(
f)}
b.appendChild(
d);
return b}, buildGeometryNode:
function(
a){this.externalProjection && this.internalProjection &&
393 (
a =
a.clone(),
a.transform(
this.internalProjection,
this.externalProjection)); var
b =
a.CLASS_NAME,
b =
b.substring(
b.lastIndexOf(
".") + 1);
return this.buildGeometry[
b.toLowerCase()].apply(
this, [
a])}, buildGeometry:{point:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:Point");
b.appendChild(this.buildCoordinatesNode(
a));
return b}, multipoint:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:MultiPoint");
a =
a.components;
for (var
c,
d,
e = 0;
e <
a.length;
e++)
c = this.createElementNS(this.gmlns,
"gml:pointMember"),
394 d = this.buildGeometry.point.apply(
this, [
a[
e]]),
c.appendChild(
d),
b.appendChild(
c);
return b}, linestring:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:LineString");
b.appendChild(this.buildCoordinatesNode(
a));
return b}, multilinestring:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:MultiLineString");
a =
a.components;
for (var
c,
d,
e = 0;
e <
a.length; ++
e)
c = this.createElementNS(this.gmlns,
"gml:lineStringMember"),
d = this.buildGeometry.linestring.apply(
this, [
a[
e]]),
c.appendChild(
d),
b.appendChild(
c);
395 return b}, linearring:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:LinearRing");
b.appendChild(this.buildCoordinatesNode(
a));
return b}, polygon:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:Polygon");
a =
a.components;
for (var
c,
d,
e = 0;
e <
a.length; ++
e)
c = 0 ==
e?
"outerBoundaryIs":
"innerBoundaryIs",
c =
this.createElementNS(
this.gmlns,
"gml:" +
c),
d =
this.buildGeometry.linearring.apply(
this, [
a[
e]]),
c.appendChild(
d),
b.appendChild(
c);
return b}, multipolygon:
function(
a){var
b = this.createElementNS(this.gmlns,
396 "gml:MultiPolygon");
a =
a.components;
for (var
c,
d,
e = 0;
e <
a.length; ++
e)
c = this.createElementNS(this.gmlns,
"gml:polygonMember"),
d = this.buildGeometry.polygon.apply(
this, [
a[
e]]),
c.appendChild(
d),
b.appendChild(
c);
return b}, bounds:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:Box");
b.appendChild(this.buildCoordinatesNode(
a));
return b}}, buildCoordinatesNode:
function(
a){var
b = this.createElementNS(this.gmlns,
"gml:coordinates");
b.setAttribute(
"decimal",
".");
b.setAttribute(
"cs",
",");
b.setAttribute(
"ts",
397 " "); var
c = [];
if (
a instanceof
OpenLayers.Bounds)
c.push(
a.left +
"," +
a.bottom),
c.push(
a.right +
"," +
a.top);
else{
a =
a.components?
a.components:[
a];
for (var
d = 0;
d <
a.length;
d++)
c.push(
a[
d].x +
"," +
a[
d].y)}
c = this.createTextNode(
c.join(
" "));
b.appendChild(
c);
return b}, CLASS_NAME:
"OpenLayers.Format.GML"});
OpenLayers.Format.GML || (
OpenLayers.Format.GML = {});
398 OpenLayers.Format.GML.Base =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{gml:
"http://www.opengis.net/gml", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance", wfs:
"http://www.opengis.net/wfs"}, defaultPrefix:
"gml", schemaLocation:
null, featureType:
null, featureNS:
null, geometryName:
"geometry", extractAttributes:!0, srsName:
null, xy:!0, geometryTypes:
null, singleFeatureType:
null, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g, featureMember:/^(.*:)?featureMembers?$/},
399 initialize:
function(
a){OpenLayers.Format.XML.prototype.initialize.apply(this, [a]); this.setGeometryTypes(); a && a.featureNS && this.setNamespace(
"feature", a.featureNS); this.singleFeatureType = !a ||
"string" === typeof a.featureType}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = []; this.readNode(a, {features:b}, !0);
if (0 ==
b.length){var
c = this.getElementsByTagNameNS(
a, this.
namespaces.gml,
"featureMember");
if (
c.length){
a =
400 0;
for (var
d =
c.length;
a <
d; ++
a)this.readNode(
c[
a], {features:
b}, !0)}
else c = this.getElementsByTagNameNS(
a, this.
namespaces.gml,
"featureMembers"),
c.length && this.readNode(
c[0], {features:
b}, !0)}
return b}, readNode:
function(
a,
b,
c){!0 ===
c && !0 === this.autoConfig && (this.featureType =
null,
delete this.namespaceAlias[this.featureNS],
delete this.
namespaces.feature, this.featureNS =
null); this.featureNS || (
a.prefix in this.
namespaces ||
a.parentNode.namespaceURI != this.
namespaces.gml || !this.regExes.featureMember.test(
a.parentNode.nodeName)) ||
401 (this.featureType =
a.nodeName.split(
":").pop(), this.setNamespace(
"feature",
a.namespaceURI),
this.featureNS =
a.namespaceURI,
this.autoConfig = !0);
return OpenLayers.Format.XML.prototype.readNode.apply(
this, [
a,
b])}, readers:{gml:{_inherit:
function(
a,
b,
c){}, featureMember:
function(
a,
b){this.readChildNodes(
a,
b)}, featureMembers:
function(
a,
b){this.readChildNodes(
a,
b)}, name:
function(
a,
b){
b.name = this.getChildValue(
a)}, boundedBy:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
c.components && 0 <
c.components.length &&
402 (
b.bounds =
c.components[0])},
Point:
function(
a,
b){var
c = {points:[]}; this.readChildNodes(
a,
c);
b.components || (
b.components = []);
b.components.push(
c.points[0])}, coordinates:
function(
a,
b){
for (var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
""),
c =
c.replace(
this.regExes.trimComma,
","),
c =
c.split(
this.regExes.splitSpace),
d,
e =
c.length,
f =
Array(
e),
g = 0;
g <
e; ++
g)
d =
c[
g].split(
","),
f[
g] = this.xy?
new OpenLayers.Geometry.Point(
d[0],
d[1],
d[2]):
new OpenLayers.Geometry.Point(
d[1],
d[0],
d[2]);
b.points =
f}, coord:
function(
a,
403 b){var
c = {}; this.readChildNodes(
a,
c);
b.points || (
b.points = []);
b.points.push(
new OpenLayers.Geometry.Point(
c.x,
c.y,
c.z))},
X:
function(
a,
b){
b.x = this.getChildValue(
a)},
Y:
function(
a,
b){
b.y = this.getChildValue(
a)},
Z:
function(
a,
b){
b.z = this.getChildValue(
a)},
MultiPoint:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components = [
new OpenLayers.Geometry.MultiPoint(
c.components)]}, pointMember:
function(
a,
b){this.readChildNodes(
a,
b)},
LineString:
function(
a,
404 b){var
c = {}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components || (
b.components = []);
b.components.push(
new OpenLayers.Geometry.LineString(
c.points))},
MultiLineString:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components = [
new OpenLayers.Geometry.MultiLineString(
c.components)]}, lineStringMember:
function(
a,
b){this.readChildNodes(
a,
b)},
Polygon:
function(
a,
b){var
c = {outer:
null, inner:[]}; this.readers.gml._inherit.apply(
this,
405 [
a,
c,
b]); this.readChildNodes(
a,
c);
c.inner.unshift(
c.outer);
b.components || (
b.components = []);
b.components.push(
new OpenLayers.Geometry.Polygon(
c.inner))},
LinearRing:
function(
a,
b){var
c = {}; this.readers.gml._inherit.apply(
this, [
a,
c]); this.readChildNodes(
a,
c);
b.components = [
new OpenLayers.Geometry.LinearRing(
c.points)]},
MultiPolygon:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components = [
new OpenLayers.Geometry.MultiPolygon(
c.components)]},
406 polygonMember:
function(
a,
b){this.readChildNodes(
a,
b)}, GeometryCollection:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components = [
new OpenLayers.Geometry.Collection(
c.components)]}, geometryMember:
function(
a,
b){this.readChildNodes(
a,
b)}}, feature:{
"*":
function(
a,
b){var
c,
d =
a.localName ||
a.nodeName.split(
":").pop();
b.features?this.singleFeatureType || - 1 ===
OpenLayers.Util.indexOf(this.featureType,
d)?
d === this.featureType && (
c =
"_typeName"):
c =
407 "_typeName":0 ==
a.childNodes.length || 1 ==
a.childNodes.length && 3 ==
a.firstChild.nodeType?
this.extractAttributes && (
c =
"_attribute"):
c =
"_geometry";
c && this.readers.feature[
c].apply(
this, [
a,
b])}, _typeName:
function(
a,
b){var
c = {components:[], attributes:{}}; this.readChildNodes(
a,
c);
c.name && (
c.attributes.name =
c.name); var
d =
new OpenLayers.Feature.Vector(
c.components[0],
c.attributes); this.singleFeatureType || (
d.type =
a.nodeName.split(
":").pop(),
d.namespace =
a.namespaceURI); var
e =
a.getAttribute(
"fid") || this.getAttributeNS(
a,
408 this.
namespaces.gml,
"id");
e && (
d.fid =
e); this.internalProjection && (this.externalProjection &&
d.geometry) &&
d.geometry.transform(
this.externalProjection,
this.internalProjection);
c.bounds && (
d.bounds =
c.bounds);
b.features.push(
d)}, _geometry:
function(
a,
b){this.geometryName || (this.geometryName =
a.nodeName.split(
":").pop()); this.readChildNodes(
a,
b)}, _attribute:
function(
a,
b){var
c =
a.localName ||
a.nodeName.split(
":").pop(),
d = this.getChildValue(
a);
b.attributes[
c] =
d}}, wfs:{FeatureCollection:
function(
a,
b){this.readChildNodes(
a,
409 b)}}}, write:
function(
a){var
b;
b =
OpenLayers.Util.isArray(
a)?
"featureMembers":
"featureMember";
a = this.writeNode(
"gml:" +
b,
a); this.setAttributeNS(
a, this.
namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, writers:{gml:{featureMember:
function(
a){var
b = this.createElementNSPlus(
"gml:featureMember"); this.writeNode(
"feature:_typeName",
a,
b);
return b},
MultiPoint:
function(
a){var
b = this.createElementNSPlus(
"gml:MultiPoint");
a =
a.components || [
a];
410 for (var
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"pointMember",
a[
c],
b);
return b}, pointMember:
function(
a){var
b = this.createElementNSPlus(
"gml:pointMember"); this.writeNode(
"Point",
a,
b);
return b},
MultiLineString:
function(
a){var
b = this.createElementNSPlus(
"gml:MultiLineString");
a =
a.components || [
a];
for (var
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"lineStringMember",
a[
c],
b);
return b}, lineStringMember:
function(
a){var
b = this.createElementNSPlus(
"gml:lineStringMember"); this.writeNode(
"LineString",
a,
b);
return b},
411 MultiPolygon:
function(
a){var
b = this.createElementNSPlus(
"gml:MultiPolygon");
a =
a.components || [
a];
for (var
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"polygonMember",
a[
c],
b);
return b}, polygonMember:
function(
a){var
b = this.createElementNSPlus(
"gml:polygonMember"); this.writeNode(
"Polygon",
a,
b);
return b}, GeometryCollection:
function(
a){
for (var
b = this.createElementNSPlus(
"gml:GeometryCollection"),
c = 0,
d =
a.components.length;
c <
d; ++
c)this.writeNode(
"geometryMember",
a.components[
c],
b);
return b}, geometryMember:
function(
a){var
b =
412 this.createElementNSPlus(
"gml:geometryMember");
a = this.writeNode(
"feature:_geometry",
a);
b.appendChild(
a.firstChild);
return b}}, feature:{_typeName:
function(
a){var
b = this.createElementNSPlus(
"feature:" + this.featureType, {attributes:{fid:
a.fid}});
a.geometry && this.writeNode(
"feature:_geometry",
a.geometry,
b);
for (var
c in
a.attributes){var
d =
a.attributes[
c];
null !=
d && this.writeNode(
"feature:_attribute", {name:
c, value:
d},
b)}
return b}, _geometry:
function(
a){this.externalProjection && this.internalProjection && (
a =
413 a.clone().
transform(this.internalProjection, this.externalProjection)); var
b = this.createElementNSPlus(
"feature:" + this.geometryName);
a = this.writeNode(
"gml:" + this.geometryTypes[
a.CLASS_NAME],
a,
b); this.srsName &&
a.setAttribute(
"srsName", this.srsName);
return b}, _attribute:
function(
a){
return this.createElementNSPlus(
"feature:" +
a.name, {value:a.value})}}, wfs:{FeatureCollection:
function(
a){
for (var
b = this.createElementNSPlus(
"wfs:FeatureCollection"),
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"gml:featureMember",
414 a[
c],
b);
return b}}}, setGeometryTypes:
function(){this.geometryTypes = {
"OpenLayers.Geometry.Point":
"Point",
"OpenLayers.Geometry.MultiPoint":
"MultiPoint",
"OpenLayers.Geometry.LineString":
"LineString",
"OpenLayers.Geometry.MultiLineString":
"MultiLineString",
"OpenLayers.Geometry.Polygon":
"Polygon",
"OpenLayers.Geometry.MultiPolygon":
"MultiPolygon",
"OpenLayers.Geometry.Collection":
"GeometryCollection"}}, CLASS_NAME:
"OpenLayers.Format.GML.Base"});
OpenLayers.Format.GML.v3 =
OpenLayers.Class(
OpenLayers.Format.GML.Base, {schemaLocation:
"http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd", curve:!1, multiCurve:!0, surface:!1, multiSurface:!0, initialize:function(
a){
OpenLayers.Format.GML.Base.prototype.initialize.apply(
this, [
a])}, readers:{gml:
OpenLayers.Util.applyDefaults({_inherit:
function(
a,
b,
c){
if (
a = parseInt(
a.getAttribute(
"srsDimension"), 10) ||
c &&
c.srsDimension)
b.srsDimension =
a}, featureMembers:
function(
a,
415 b){this.readChildNodes(
a,
b)},
Curve:
function(
a,
b){var
c = {points:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c);
b.components || (
b.components = []);
b.components.push(
new OpenLayers.Geometry.LineString(
c.points))}, segments:
function(
a,
b){this.readChildNodes(
a,
b)}, LineStringSegment:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
c.points &&
Array.prototype.push.apply(
b.points,
c.points)}, pos:
function(
a,
b){var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
"").split(this.regExes.splitSpace),
416 c = this.xy?
new OpenLayers.Geometry.Point(
c[0],
c[1],
c[2]):
new OpenLayers.Geometry.Point(
c[1],
c[0],
c[2]);
b.points = [
c]}, posList:
function(
a,
b){
for (var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
"").split(
this.regExes.splitSpace),
d =
b.srsDimension || parseInt(
a.getAttribute(
"srsDimension") ||
a.getAttribute(
"dimension"), 10) || 2,
e,
f,
g,
h =
Array(
c.length /
d),
k = 0,
l =
c.length;
k <
l;
k +=
d)
e =
c[
k],
f =
c[
k + 1],
g = 2 ==
d?
void 0:
c[
k + 2],
h[
k /
d] = this.xy?
new OpenLayers.Geometry.Point(
e,
f,
g):
new OpenLayers.Geometry.Point(
f,
417 e,
g);
b.points =
h}, Surface:
function(
a,
b){this.readChildNodes(
a,
b)}, patches:
function(
a,
b){this.readChildNodes(
a,
b)}, PolygonPatch:
function(
a,
b){this.readers.gml.Polygon.apply(
this, [
a,
b])}, exterior:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.outer =
c.components[0]}, interior:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.inner.push(
c.components[0])}, MultiCurve:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c); 0 <
c.components.length && (
b.components =
418 [
new OpenLayers.Geometry.MultiLineString(
c.components)])}, curveMember:
function(
a,
b){this.readChildNodes(
a,
b)}, MultiSurface:
function(
a,
b){var
c = {components:[]}; this.readers.gml._inherit.apply(
this, [
a,
c,
b]); this.readChildNodes(
a,
c); 0 <
c.components.length && (
b.components = [
new OpenLayers.Geometry.MultiPolygon(
c.components)])}, surfaceMember:
function(
a,
b){this.readChildNodes(
a,
b)}, surfaceMembers:
function(
a,
b){this.readChildNodes(
a,
b)}, pointMembers:
function(
a,
b){this.readChildNodes(
a,
b)}, lineStringMembers:
function(
a,
419 b){this.readChildNodes(
a,
b)}, polygonMembers:
function(
a,
b){this.readChildNodes(
a,
b)}, geometryMembers:
function(
a,
b){this.readChildNodes(
a,
b)}, Envelope:
function(
a,
b){var
c = {points:
Array(2)}; this.readChildNodes(
a,
c);
b.components || (
b.components = []); var
d =
c.points[0],
c =
c.points[1];
b.components.push(
new OpenLayers.Bounds(
d.x,
d.y,
c.x,
c.y))}, lowerCorner:
function(
a,
b){var
c = {}; this.readers.gml.pos.apply(
this, [
a,
c]);
b.points[0] =
c.points[0]}, upperCorner:
function(
a,
b){var
c = {}; this.readers.gml.pos.apply(
this,
420 [
a,
c]);
b.points[1] =
c.points[0]}},
OpenLayers.Format.GML.Base.prototype.readers.gml), feature:
OpenLayers.
Format.
GML.
Base.
prototype.readers.feature, wfs:
OpenLayers.
Format.
GML.
Base.
prototype.readers.wfs}, write:function(
a){var
b;
b =
OpenLayers.Util.isArray(
a)?
"featureMembers":
"featureMember";
a = this.writeNode(
"gml:" +
b,
a); this.setAttributeNS(
a, this.
namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, writers:{gml:
OpenLayers.Util.applyDefaults({featureMembers:
function(
a){
for (var
b =
421 this.createElementNSPlus(
"gml:featureMembers"),
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"feature:_typeName",
a[
c],
b);
return b},
Point:
function(
a){var
b = this.createElementNSPlus(
"gml:Point"); this.writeNode(
"pos",
a,
b);
return b}, pos:
function(
a){
return this.createElementNSPlus(
"gml:pos", {value:this.xy?
a.x +
" " +
a.y:
a.y +
" " +
a.x})},
LineString:
function(
a){var
b = this.createElementNSPlus(
"gml:LineString"); this.writeNode(
"posList",
a.components,
b);
return b},
Curve:
function(
a){var
b = this.createElementNSPlus(
"gml:Curve");
422 this.writeNode(
"segments",
a,
b);
return b}, segments:
function(
a){var
b = this.createElementNSPlus(
"gml:segments"); this.writeNode(
"LineStringSegment",
a,
b);
return b}, LineStringSegment:
function(
a){var
b = this.createElementNSPlus(
"gml:LineStringSegment"); this.writeNode(
"posList",
a.components,
b);
return b}, posList:
function(
a){
for (var
b =
a.length,
c =
Array(
b),
d,
e = 0;
e <
b; ++
e)
d =
a[
e],
c[
e] = this.xy?
d.x +
" " +
d.y:
d.
y +
" " +
d.
x;
return this.createElementNSPlus(
"gml:posList", {value:
c.join(
" ")})}, Surface:
function(
a){var
b = this.createElementNSPlus(
"gml:Surface");
423 this.writeNode(
"patches",
a,
b);
return b}, patches:
function(
a){var
b = this.createElementNSPlus(
"gml:patches"); this.writeNode(
"PolygonPatch",
a,
b);
return b}, PolygonPatch:
function(
a){var
b = this.createElementNSPlus(
"gml:PolygonPatch", {attributes:{interpolation:
"planar"}}); this.writeNode(
"exterior",
a.components[0],
b);
for (var
c = 1,
d =
a.components.length;
c <
d; ++
c)this.writeNode(
"interior",
a.components[
c],
b);
return b},
Polygon:
function(
a){var
b = this.createElementNSPlus(
"gml:Polygon"); this.writeNode(
"exterior",
a.components[0],
424 b);
for (var
c = 1,
d =
a.components.length;
c <
d; ++
c)this.writeNode(
"interior",
a.components[
c],
b);
return b}, exterior:
function(
a){var
b = this.createElementNSPlus(
"gml:exterior"); this.writeNode(
"LinearRing",
a,
b);
return b}, interior:
function(
a){var
b = this.createElementNSPlus(
"gml:interior"); this.writeNode(
"LinearRing",
a,
b);
return b},
LinearRing:
function(
a){var
b = this.createElementNSPlus(
"gml:LinearRing"); this.writeNode(
"posList",
a.components,
b);
return b}, MultiCurve:
function(
a){var
b = this.createElementNSPlus(
"gml:MultiCurve");
425 a =
a.components || [
a];
for (var
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"curveMember",
a[
c],
b);
return b}, curveMember:
function(
a){var
b = this.createElementNSPlus(
"gml:curveMember"); this.curve?this.writeNode(
"Curve",
a,
b):
this.writeNode(
"LineString",
a,
b);
return b}, MultiSurface:
function(
a){var
b = this.createElementNSPlus(
"gml:MultiSurface");
a =
a.components || [
a];
for (var
c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"surfaceMember",
a[
c],
b);
return b}, surfaceMember:
function(
a){var
b = this.createElementNSPlus(
"gml:surfaceMember");
426 this.surface?this.writeNode(
"Surface",
a,
b):
this.writeNode(
"Polygon",
a,
b);
return b}, Envelope:
function(
a){var
b = this.createElementNSPlus(
"gml:Envelope"); this.writeNode(
"lowerCorner",
a,
b); this.writeNode(
"upperCorner",
a,
b); this.srsName &&
b.setAttribute(
"srsName", this.srsName);
return b}, lowerCorner:
function(
a){
return this.createElementNSPlus(
"gml:lowerCorner", {value:this.xy?
a.left +
" " +
a.bottom:
a.bottom +
" " +
a.left})}, upperCorner:
function(
a){
return this.createElementNSPlus(
"gml:upperCorner", {value:this.xy?
427 a.right +
" " +
a.top:
a.top +
" " +
a.right})}},
OpenLayers.Format.GML.Base.prototype.writers.gml), feature:
OpenLayers.
Format.
GML.
Base.
prototype.writers.feature, wfs:
OpenLayers.
Format.
GML.
Base.
prototype.writers.wfs}, setGeometryTypes:function(){this.geometryTypes = {
"OpenLayers.Geometry.Point":
"Point",
"OpenLayers.Geometry.MultiPoint":
"MultiPoint",
"OpenLayers.Geometry.LineString":!0 === this.curve?
"Curve":
"LineString",
"OpenLayers.Geometry.MultiLineString":!1 === this.multiCurve?
"MultiLineString":
"MultiCurve",
"OpenLayers.Geometry.Polygon":!0 ===
428 this.surface?
"Surface":
"Polygon",
"OpenLayers.Geometry.MultiPolygon":!1 === this.multiSurface?
"MultiPolygon":
"MultiSurface",
"OpenLayers.Geometry.Collection":
"GeometryCollection"}}, CLASS_NAME:
"OpenLayers.Format.GML.v3"});
OpenLayers.Format.Filter.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.GML.v3,
OpenLayers.Format.Filter.v1, {VERSION:
"1.1.0", schemaLocation:
"http://www.opengis.net/ogc/filter/1.1.0/filter.xsd", initialize:function(
a){
OpenLayers.Format.GML.v3.prototype.initialize.apply(
this, [
a])}, readers:{ogc:
OpenLayers.Util.applyDefaults({PropertyIsEqualTo:
function(
a,
b){var
c =
a.getAttribute(
"matchCase"),
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.EQUAL_TO, matchCase:!(
"false" ===
c ||
"0" ===
c)}); this.readChildNodes(
a,
429 c);
b.filters.push(
c)}, PropertyIsNotEqualTo:
function(
a,
b){var
c =
a.getAttribute(
"matchCase"),
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.NOT_EQUAL_TO, matchCase:!(
"false" ===
c ||
"0" ===
c)}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsLike:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.LIKE}); this.readChildNodes(
a,
c); var
d =
a.getAttribute(
"wildCard"),
e =
a.getAttribute(
"singleChar"),
f =
a.getAttribute(
"escapeChar");
c.value2regex(
d,
e,
430 f);
b.filters.push(
c)}},
OpenLayers.Format.Filter.v1.prototype.readers.ogc), gml:
OpenLayers.
Format.
GML.
v3.
prototype.readers.gml, feature:
OpenLayers.
Format.
GML.
v3.
prototype.readers.feature}, writers:{ogc:
OpenLayers.Util.applyDefaults({PropertyIsEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsEqualTo", {attributes:{matchCase:
a.matchCase}}); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsNotEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsNotEqualTo",
431{attributes:{matchCase:
a.matchCase}}); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsLike:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsLike", {attributes:{matchCase:
a.matchCase, wildCard:
"*", singleChar:
".", escapeChar:
"!"}}); this.writeNode(
"PropertyName",
a,
b); this.writeNode(
"Literal",
a.regex2value(),
b);
return b},
BBOX:
function(
a){var
b = this.createElementNSPlus(
"ogc:BBOX");
a.property && this.writeNode(
"PropertyName",
a,
b); var
c = this.writeNode(
"gml:Envelope",
432 a.value);
a.projection &&
c.setAttribute(
"srsName",
a.projection);
b.appendChild(
c);
return b}, SortBy:
function(
a){
for (var
b = this.createElementNSPlus(
"ogc:SortBy"),
c = 0,
d =
a.length;
c <
d;
c++)this.writeNode(
"ogc:SortProperty",
a[
c],
b);
return b}, SortProperty:
function(
a){var
b = this.createElementNSPlus(
"ogc:SortProperty"); this.writeNode(
"ogc:PropertyName",
a,
b); this.writeNode(
"ogc:SortOrder",
"DESC" ==
a.order?
"DESC":
"ASC",
b);
return b}, SortOrder:
function(
a){
return this.createElementNSPlus(
"ogc:SortOrder", {value:
a})}},
433 OpenLayers.Format.Filter.v1.prototype.writers.ogc), gml:
OpenLayers.
Format.
GML.
v3.
prototype.writers.gml, feature:
OpenLayers.
Format.
GML.
v3.
prototype.writers.feature}, writeSpatial:function(
a,
b){var
c = this.createElementNSPlus(
"ogc:" +
b); this.writeNode(
"PropertyName",
a,
c);
if (
a.value instanceof
OpenLayers.Filter.Function)this.writeNode(
"Function",
a.value,
c);
else{var
d;
d =
a.value instanceof
OpenLayers.Geometry?this.writeNode(
"feature:_geometry",
a.value).firstChild:this.writeNode(
"gml:Envelope",
a.value);
a.projection &&
434 d.setAttribute(
"srsName",
a.projection);
c.appendChild(
d)}
return c}, CLASS_NAME:
"OpenLayers.Format.Filter.v1_1_0"});
OpenLayers.Format.OWSCommon =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.0.0", getVersion:function(
a,
b){var
c = this.
version;
if (!
c){var
d =
a.getAttribute(
"xmlns:ows");
d &&
"1.1" ===
d.substring(
d.lastIndexOf(
"/") + 1) && (
c =
"1.1.0");
c || (
c = this.defaultVersion)}
return c}, CLASS_NAME:
"OpenLayers.Format.OWSCommon"});
OpenLayers.Format.OWSCommon.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, read:
function(
a,
b){
OpenLayers.Util.applyDefaults(
b, this.options); var
c = {}; this.readChildNodes(
a,
c);
return c}, readers:{ows:{Exception:
function(
a,
b){var
c = {code:
a.getAttribute(
"exceptionCode"), locator:
a.getAttribute(
"locator"), texts:[]};
b.exceptions.push(
c); this.readChildNodes(
a,
c)}, ExceptionText:
function(
a,
b){var
c = this.getChildValue(
a);
b.texts.push(
c)},
435 ServiceIdentification:
function(
a,
b){
b.serviceIdentification = {}; this.readChildNodes(
a,
b.serviceIdentification)}, Title:
function(
a,
b){
b.title = this.getChildValue(
a)}, Abstract:
function(
a,
b){
b[
"abstract"] = this.getChildValue(
a)}, Keywords:
function(
a,
b){
b.keywords = {}; this.readChildNodes(
a,
b.keywords)}, Keyword:
function(
a,
b){
b[this.getChildValue(
a)] = !0}, ServiceType:
function(
a,
b){
b.serviceType = {codeSpace:
a.getAttribute(
"codeSpace"), value:this.getChildValue(
a)}}, ServiceTypeVersion:
function(
a,
b){
b.serviceTypeVersion =
436 this.getChildValue(
a)}, Fees:
function(
a,
b){
b.fees = this.getChildValue(
a)}, AccessConstraints:
function(
a,
b){
b.accessConstraints = this.getChildValue(
a)}, ServiceProvider:
function(
a,
b){
b.serviceProvider = {}; this.readChildNodes(
a,
b.serviceProvider)}, ProviderName:
function(
a,
b){
b.providerName = this.getChildValue(
a)}, ProviderSite:
function(
a,
b){
b.providerSite = this.getAttributeNS(
a, this.
namespaces.xlink,
"href")}, ServiceContact:
function(
a,
b){
b.serviceContact = {}; this.readChildNodes(
a,
b.serviceContact)}, IndividualName:
function(
a,
437 b){
b.individualName = this.getChildValue(
a)}, PositionName:
function(
a,
b){
b.positionName = this.getChildValue(
a)}, ContactInfo:
function(
a,
b){
b.contactInfo = {}; this.readChildNodes(
a,
b.contactInfo)}, Phone:
function(
a,
b){
b.phone = {}; this.readChildNodes(
a,
b.phone)}, Voice:
function(
a,
b){
b.voice = this.getChildValue(
a)}, Address:
function(
a,
b){
b.address = {}; this.readChildNodes(
a,
b.address)}, DeliveryPoint:
function(
a,
b){
b.deliveryPoint = this.getChildValue(
a)}, City:
function(
a,
b){
b.city = this.getChildValue(
a)}, AdministrativeArea:
function(
a,
438 b){
b.administrativeArea = this.getChildValue(
a)}, PostalCode:
function(
a,
b){
b.postalCode = this.getChildValue(
a)}, Country:
function(
a,
b){
b.country = this.getChildValue(
a)}, ElectronicMailAddress:
function(
a,
b){
b.electronicMailAddress = this.getChildValue(
a)}, Role:
function(
a,
b){
b.role = this.getChildValue(
a)}, OperationsMetadata:
function(
a,
b){
b.operationsMetadata = {}; this.readChildNodes(
a,
b.operationsMetadata)}, Operation:
function(
a,
b){var
c =
a.getAttribute(
"name");
b[
c] = {}; this.readChildNodes(
a,
b[
c])}, DCP:
function(
a,
439 b){
b.dcp = {}; this.readChildNodes(
a,
b.dcp)}, HTTP:
function(
a,
b){
b.http = {}; this.readChildNodes(
a,
b.http)}, Get:
function(
a,
b){
b.get || (
b.get = []); var
c = {url:this.getAttributeNS(
a, this.
namespaces.xlink,
"href")}; this.readChildNodes(
a,
c);
b.get.push(
c)}, Post:
function(
a,
b){
b.post || (
b.post = []); var
c = {url:this.getAttributeNS(
a, this.
namespaces.xlink,
"href")}; this.readChildNodes(
a,
c);
b.post.push(
c)}, Parameter:
function(
a,
b){
b.parameters || (
b.parameters = {}); var
c =
a.getAttribute(
"name");
b.parameters[
c] = {}; this.readChildNodes(
a,
440 b.parameters[
c])}, Constraint:
function(
a,
b){
b.constraints || (
b.constraints = {}); var
c =
a.getAttribute(
"name");
b.constraints[
c] = {}; this.readChildNodes(
a,
b.constraints[
c])}, Value:
function(
a,
b){
b[this.getChildValue(
a)] = !0}, OutputFormat:
function(
a,
b){
b.formats.push({value:this.getChildValue(
a)}); this.readChildNodes(
a,
b)}, WGS84BoundingBox:
function(
a,
b){var
c = {};
c.crs =
a.getAttribute(
"crs");
b.BoundingBox?
b.BoundingBox.push(
c):(
b.projection =
c.crs,
c =
b); this.readChildNodes(
a,
c)}, BoundingBox:
function(
a,
b){this.readers.ows.WGS84BoundingBox.apply(
this,
441 [
a,
b])}, LowerCorner:
function(
a,
b){var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
""),
c =
c.replace(this.regExes.trimComma,
","),
c =
c.split(this.regExes.splitSpace);
b.left =
c[0];
b.bottom =
c[1]}, UpperCorner:
function(
a,
b){var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
""),
c =
c.replace(this.regExes.trimComma,
","),
c =
c.split(this.regExes.splitSpace);
b.right =
c[0];
b.top =
c[1];
b.bounds =
new OpenLayers.Bounds(
b.left,
b.bottom,
b.right,
b.top);
delete b.left;
delete b.bottom;
delete b.right;
delete b.top},
442 Language:
function(
a,
b){
b.language = this.getChildValue(
a)}}}, writers:{ows:{BoundingBox:
function(
a,
b){var
c = this.createElementNSPlus(
b ||
"ows:BoundingBox", {attributes:{crs:
a.projection}}); this.writeNode(
"ows:LowerCorner",
a,
c); this.writeNode(
"ows:UpperCorner",
a,
c);
return c}, LowerCorner:
function(
a){
return this.createElementNSPlus(
"ows:LowerCorner", {value:
a.bounds.left +
" " +
a.bounds.bottom})}, UpperCorner:
function(
a){
return this.createElementNSPlus(
"ows:UpperCorner", {value:
a.bounds.right +
" " +
a.bounds.top})},
443 Identifier:
function(
a){
return this.createElementNSPlus(
"ows:Identifier", {value:
a})}, Title:
function(
a){
return this.createElementNSPlus(
"ows:Title", {value:
a})}, Abstract:
function(
a){
return this.createElementNSPlus(
"ows:Abstract", {value:
a})}, OutputFormat:
function(
a){
return this.createElementNSPlus(
"ows:OutputFormat", {value:
a})}}}, CLASS_NAME:
"OpenLayers.Format.OWSCommon.v1"});
OpenLayers.Format.OWSCommon.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.OWSCommon.v1, {
namespaces:{ows:
"http://www.opengis.net/ows", xlink:
"http://www.w3.org/1999/xlink"}, readers:{ows:
OpenLayers.Util.applyDefaults({ExceptionReport:
function(
a,
b){
b.success = !1;
b.exceptionReport = {
version:
a.getAttribute(
"version"), language:
a.getAttribute(
"language"), exceptions:[]}; this.readChildNodes(
a,
b.exceptionReport)}},
OpenLayers.Format.OWSCommon.v1.prototype.readers.ows)}, writers:{ows:
OpenLayers.Format.OWSCommon.v1.prototype.writers.ows},
444 CLASS_NAME:
"OpenLayers.Format.OWSCommon.v1_0_0"});
OpenLayers.Format.WFST.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.Filter.v1_1_0,
OpenLayers.Format.WFST.v1, {
version:
"1.1.0", schemaLocations:{wfs:
"http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"}, initialize:
function(
a){
OpenLayers.Format.Filter.v1_1_0.prototype.initialize.apply(
this, [
a]);
OpenLayers.Format.WFST.v1.prototype.initialize.apply(
this, [
a])}, readNode:
function(
a,
b,
c){
return OpenLayers.Format.GML.v3.prototype.readNode.apply(
this, arguments)}, readers:{wfs:
OpenLayers.Util.applyDefaults({FeatureCollection:
function(
a,
445 b){
b.numberOfFeatures = parseInt(
a.getAttribute(
"numberOfFeatures"));
OpenLayers.Format.WFST.v1.prototype.readers.wfs.FeatureCollection.apply(
this, arguments)}, TransactionResponse:
function(
a,
b){
b.insertIds = [];
b.success = !1; this.readChildNodes(
a,
b)}, TransactionSummary:
function(
a,
b){
b.success = !0}, InsertResults:
function(
a,
b){this.readChildNodes(
a,
b)},
Feature:
function(
a,
b){var
c = {fids:[]}; this.readChildNodes(
a,
c);
b.insertIds.push(
c.fids[0])}},
OpenLayers.Format.WFST.v1.prototype.readers.wfs), gml:
OpenLayers.
Format.
GML.
v3.
prototype.readers.gml,
447 featurePrefix:this.featurePrefix, featureType:this.featureType, srsName:this.srsName},
a); var
b =
a.featurePrefix,
c = this.createElementNSPlus(
"wfs:Query", {attributes:{typeName:(
b?
b +
":":
"") +
a.featureType, srsName:
a.srsName}});
a.featureNS &&
c.setAttribute(
"xmlns:" +
b,
a.featureNS);
if (
a.propertyNames)
for (var
b = 0,
d =
a.propertyNames.length;
b <
d;
b++)this.writeNode(
"wfs:PropertyName", {property:
a.propertyNames[
b]},
c);
a.filter && (
OpenLayers.Format.WFST.v1_1_0.prototype.setFilterProperty.call(
this,
a.filter),
this.writeNode(
"ogc:Filter",
448 a.filter,
c));
return c}, PropertyName:
function(
a){
return this.createElementNSPlus(
"wfs:PropertyName", {value:
a.property})}},
OpenLayers.Format.WFST.v1.prototype.writers.wfs), gml:
OpenLayers.
Format.
GML.
v3.
prototype.writers.gml, feature:
OpenLayers.
Format.
GML.
v3.
prototype.writers.feature, ogc:
OpenLayers.
Format.
Filter.
v1_1_0.
prototype.writers.ogc}, CLASS_NAME:
"OpenLayers.Format.WFST.v1_1_0"});
OpenLayers.Protocol =
OpenLayers.Class({format:
null, options:
null, autoDestroy:!0, defaultFilter:
null, initialize:
function(
a){
a =
a || {};
OpenLayers.Util.extend(
this,
a); this.options =
a}, mergeWithDefaultFilter:
function(
a){
return a && this.defaultFilter?
new OpenLayers.Filter.Logical({type:
OpenLayers.Filter.Logical.AND, filters:[this.defaultFilter,
a]}):
a ||
this.defaultFilter || void 0}, destroy:function(){this.format = this.options =
null}, read:
function(
a){
a =
a || {};
a.filter = this.mergeWithDefaultFilter(
a.filter)},
create:
function(){},
449 update:
function(){},
"delete":
function(){}, commit:
function(){}, abort:
function(
a){}, createCallback:
function(
a,
b,
c){
return OpenLayers.Function.bind(
function(){
a.apply(
this, [
b,
c])},
this)}, CLASS_NAME:
"OpenLayers.Protocol"});
OpenLayers.Protocol.Response =
OpenLayers.Class({code:
null, requestType:
null, last:!0, features:
null, data:
null, reqFeatures:
null, priv:
null, error:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a)}, success:
function(){
return 0 < this.code}, CLASS_NAME:
"OpenLayers.Protocol.Response"});
450 OpenLayers.Protocol.Response.SUCCESS = 1;
OpenLayers.Protocol.Response.FAILURE = 0;
OpenLayers.Format.JSON =
OpenLayers.Class(
OpenLayers.Format, {indent:
" ", space:
" ", newline:
"\n", level:0, pretty:!1, nativeJSON:function(){return!(!window.JSON ||
"function" != typeof JSON.parse ||
"function" != typeof JSON.stringify)}(), read:
function(
a,
b){var c; if (this.nativeJSON)c = JSON.parse(a, b); else try{if (/^[\],:{}\s]*$/.test(a.replace(/\\[
"\\\/bfnrtu]/g, "@").replace(/"[^
"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,
"")) && (c = eval(
"(" + a +
")"),
"function" ===
451 typeof b)){var d = function(a, c){if (c &&
"object" === typeof c)for (var e in c)c.hasOwnProperty(e) && (c[e] = d(e, c[e])); return b(a, c)}; c = d(
"", c)}} catch (
e){}this.keepData && (this.data =
c);
return c}, write:
function(
a,
b){this.pretty = !!
b; var
c =
null,
d = typeof
a;
if (this.serialize[
d])
try{
c = !this.pretty && this.nativeJSON?JSON.stringify(
a):this.serialize[
d].apply(
this, [
a])}
catch (
e){
OpenLayers.Console.error(
"Trouble serializing: " +
e)}
return c}, writeIndent:
function(){var
a = [];
if (this.pretty)
for (var
b = 0;
b < this.level; ++
b)
a.push(
this.indent);
452 return a.join(
"")}, writeNewline:
function(){
return this.pretty?this.newline:
""}, writeSpace:
function(){
return this.pretty?this.space:
""}, serialize:{
object:
function(
a){
if (
null ==
a)
return"null";
if (
a.constructor ==
Date)
return this.serialize.date.apply(
this, [
a]);
if (
a.constructor ==
Array)
return this.serialize.array.apply(
this, [
a]); var
b = [
"{"]; this.level += 1; var
c,
d,
e,
f = !1;
for (
c in
a)
a.hasOwnProperty(
c) && (
d =
OpenLayers.Format.JSON.prototype.write.apply(
this, [
c, this.pretty]),
e =
OpenLayers.Format.JSON.prototype.write.apply(
this,
453 [
a[
c],
this.pretty]),
null !=
d &&
null !=
e && (
f &&
b.push(
","),
b.push(
this.writeNewline(),
this.writeIndent(),
d,
":",
this.writeSpace(),
e),
f = !0)); this.level -= 1;
b.push(this.writeNewline(), this.writeIndent(),
"}");
return b.join(
"")}, array:
function(
a){var
b,
c = [
"["]; this.level += 1;
for (var
d = 0,
e =
a.length;
d <
e; ++
d)
b =
OpenLayers.Format.JSON.prototype.write.apply(
this, [
a[
d], this.pretty]),
null !=
b && (0 <
d &&
c.push(
","),
c.push(
this.writeNewline(),
this.writeIndent(),
b)); this.level -= 1;
c.push(this.writeNewline(), this.writeIndent(),
454 "]");
return c.join(
"")}, string:
function(
a){var
b = {
"\b":
"\\b",
"\t":
"\\t",
"\n":
"\\n",
"\f":
"\\f",
"\r":
"\\r",
'"':
'\\"',
"\\":
"\\\\"};
return/[
"\\\x00-\x1f]/.test(a)?'"' + a.replace(/([\x00-\x1f\\"])/g, function(a, d){var e = b[d]; if (e)return e; e = d.charCodeAt(); return"\\u00" + Math.floor(e / 16).toString(16) + (e % 16).toString(16)}) + '"':'"' + a + '"'}, number:function(a){return isFinite(a)?String(a):"null"}, "boolean":function(a){return String(a)}, date:function(a){function b(a){return 10 > a?"0
" + a:a}return'"' + a.getFullYear() +
455 "-" + b(a.getMonth() + 1) + "-" + b(a.getDate()) + "T" + b(a.getHours()) + ":" + b(a.getMinutes()) + ":" + b(a.getSeconds()) + '"'}}, CLASS_NAME:"OpenLayers.Format.JSON
"}); OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {ignoreExtraDims:!1, read:function(a, b, c){b = b?b:"FeatureCollection
"; var d = null, e = null, e = "string" == typeof a?OpenLayers.Format.JSON.prototype.read.apply(this, [a, c]):a; if (!e)OpenLayers.Console.error("Bad JSON:
" + a); else if ("string" != typeof e.type)OpenLayers.Console.error("Bad GeoJSON - no type:
" + a); else if (this.isValidType(e, b))switch (b){case "Geometry":try{d = this.parseGeometry(e)} catch (f){OpenLayers.Console.error(f)}break; case "Feature":try{d =
456 this.parseFeature(e), d.type = "Feature"} catch (g){OpenLayers.Console.error(g)}break; case "FeatureCollection
":switch (d = [], e.type){case "Feature":try{d.push(this.parseFeature(e))} catch (h){d = null, OpenLayers.Console.error(h)}break; case "FeatureCollection
":a = 0; for (b = e.features.length; a < b; ++a)try{d.push(this.parseFeature(e.features[a]))} catch (k){d = null, OpenLayers.Console.error(k)}break; default:try{var l = this.parseGeometry(e); d.push(new OpenLayers.Feature.Vector(l))} catch (m){d = null, OpenLayers.Console.error(m)}}}return d},
457 isValidType:function(a, b){var c = !1; switch (b){case "Geometry": - 1 == OpenLayers.Util.indexOf("Point MultiPoint LineString MultiLineString Polygon MultiPolygon Box GeometryCollection
".split(" "), a.type)?OpenLayers.Console.error("Unsupported geometry type:
" + a.type):c = !0; break; case "FeatureCollection
":c = !0; break; default:a.type == b?c = !0:OpenLayers.Console.error("Cannot convert
types from
" + a.type + " to
" + b)}return c}, parseFeature:function(a){var b, c, d; c = a.properties?a.properties:{}; d = a.geometry && a.geometry.bbox ||
458 a.bbox; try{b = this.parseGeometry(a.geometry)} catch (e){throw e; }b = new OpenLayers.Feature.Vector(b, c); d && (b.bounds = OpenLayers.Bounds.fromArray(d)); a.id && (b.fid = a.id); return b}, parseGeometry:function(a){if (null == a)return null; var b, c = !1; if ("GeometryCollection
" == a.type){if (!OpenLayers.Util.isArray(a.geometries))throw"GeometryCollection must have geometries array:
" + a; b = a.geometries.length; for (var c = Array(b), d = 0; d < b; ++d)c[d] = this.parseGeometry.apply(this, [a.geometries[d]]); b = new OpenLayers.Geometry.Collection(c);
459 c = !0} else{if (!OpenLayers.Util.isArray(a.coordinates))throw"Geometry must have coordinates array:
" + a; if (!this.parseCoords[a.type.toLowerCase()])throw"Unsupported geometry type:
" + a.type; try{b = this.parseCoords[a.type.toLowerCase()].apply(this, [a.coordinates])} catch (e){throw e; }}this.internalProjection && (this.externalProjection && !c) && b.transform(this.externalProjection, this.internalProjection); return b}, parseCoords:{point:function(a){if (!1 == this.ignoreExtraDims && 2 != a.length)throw"Only 2
D points are supported:
" +
460 a; return new OpenLayers.Geometry.Point(a[0], a[1])}, multipoint:function(a){for (var b = [], c = null, d = 0, e = a.length; d < e; ++d){try{c = this.parseCoords.point.apply(this, [a[d]])} catch (f){throw f; }b.push(c)}return new OpenLayers.Geometry.MultiPoint(b)}, linestring:function(a){for (var b = [], c = null, d = 0, e = a.length; d < e; ++d){try{c = this.parseCoords.point.apply(this, [a[d]])} catch (f){throw f; }b.push(c)}return new OpenLayers.Geometry.LineString(b)}, multilinestring:function(a){for (var b = [], c = null, d = 0, e = a.length; d < e; ++d){try{c =
461 this.parseCoords.linestring.apply(this, [a[d]])} catch (f){throw f; }b.push(c)}return new OpenLayers.Geometry.MultiLineString(b)}, polygon:function(a){for (var b = [], c, d, e = 0, f = a.length; e < f; ++e){try{d = this.parseCoords.linestring.apply(this, [a[e]])} catch (g){throw g; }c = new OpenLayers.Geometry.LinearRing(d.components); b.push(c)}return new OpenLayers.Geometry.Polygon(b)}, multipolygon:function(a){for (var b = [], c = null, d = 0, e = a.length; d < e; ++d){try{c = this.parseCoords.polygon.apply(this, [a[d]])} catch (f){throw f; }b.push(c)}return new OpenLayers.Geometry.MultiPolygon(b)},
462 box:function(a){if (2 != a.length)throw"GeoJSON box coordinates must have 2 elements
"; return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(a[0][0], a[0][1]), new OpenLayers.Geometry.Point(a[1][0], a[0][1]), new OpenLayers.Geometry.Point(a[1][0], a[1][1]), new OpenLayers.Geometry.Point(a[0][0], a[1][1]), new OpenLayers.Geometry.Point(a[0][0], a[0][1])])])}}, write:function(a, b){var c = {type:null}; if (OpenLayers.Util.isArray(a)){c.type = "FeatureCollection
"; var d =
463 a.length; c.features = Array(d); for (var e = 0; e < d; ++e){var f = a[e]; if (!f instanceof OpenLayers.Feature.Vector)throw"FeatureCollection only supports collections of features:
" + f; c.features[e] = this.extract.feature.apply(this, [f])}} else 0 == a.CLASS_NAME.indexOf("OpenLayers.Geometry
")?c = this.extract.geometry.apply(this, [a]):a instanceof OpenLayers.Feature.Vector && (c = this.extract.feature.apply(this, [a]), a.layer && a.layer.projection && (c.crs = this.createCRSObject(a))); return OpenLayers.Format.JSON.prototype.write.apply(this,
464 [c, b])}, createCRSObject:function(a){a = a.layer.projection.toString(); var b = {}; a.match(/epsg:/i) && (a = parseInt(a.substring(a.indexOf(":
") + 1)), b = 4326 == a?{type:"name
", properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84
"}}:{type:"name
", properties:{name:"EPSG:
" + a}}); return b}, extract:{feature:function(a){var b = this.extract.geometry.apply(this, [a.geometry]), b = {type:"Feature", properties:a.attributes, geometry:b}; null != a.fid && (b.id = a.fid); return b}, geometry:function(a){if (null == a)return null; this.internalProjection &&
465 this.externalProjection && (a = a.clone(), a.transform(this.internalProjection, this.externalProjection)); var b = a.CLASS_NAME.split(".
")[2]; a = this.extract[b.toLowerCase()].apply(this, [a]); return"Collection" == b?{type:"GeometryCollection
", geometries:a}:{type:b, coordinates:a}}, point:function(a){return[a.x, a.y]}, multipoint:function(a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extract.point.apply(this, [a.components[c]])); return b}, linestring:function(a){for (var b = [], c = 0, d = a.components.length; c <
466 d; ++c)b.push(this.extract.point.apply(this, [a.components[c]])); return b}, multilinestring:function(a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extract.linestring.apply(this, [a.components[c]])); return b}, polygon:function(a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extract.linestring.apply(this, [a.components[c]])); return b}, multipolygon:function(a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extract.polygon.apply(this, [a.components[c]])); return b}, collection:function(a){for (var b =
467 a.components.length, c = Array(b), d = 0; d < b; ++d)c[d] = this.extract.geometry.apply(this, [a.components[d]]); return c}}, CLASS_NAME:"OpenLayers.
Format.GeoJSON
"}); OpenLayers.Protocol.Script = OpenLayers.Class(OpenLayers.Protocol, {url:null, params:null, callback:null, callbackTemplate:"OpenLayers.
Protocol.Script.registry.
${id}
", callbackKey:"callback
", callbackPrefix:"", scope:null, format:null, pendingRequests:null, srsInBBOX:!1, initialize:function(a){a = a || {}; this.params = {}; this.pendingRequests = {}; OpenLayers.Protocol.prototype.initialize.apply(this, arguments); this.format || (this.format = new OpenLayers.Format.GeoJSON); if (!this.filterToParams && OpenLayers.Format.QueryStringFilter){var b =
468 new OpenLayers.Format.QueryStringFilter({srsInBBOX:this.srsInBBOX}); this.filterToParams = function(a, d){return b.write(a, d)}}}, read:function(a){OpenLayers.Protocol.prototype.read.apply(this, arguments); a = OpenLayers.Util.applyDefaults(a, this.options); a.params = OpenLayers.Util.applyDefaults(a.params, this.options.params); a.filter && this.filterToParams && (a.params = this.filterToParams(a.filter, a.params)); var b = new OpenLayers.Protocol.Response({requestType:"read
"}), c = this.createRequest(a.url, a.params, OpenLayers.Function.bind(function(c){b.data =
469 c; this.handleRead(b, a)}, this)); b.priv = c; return b}, createRequest:function(a, b, c){c = OpenLayers.Protocol.Script.register(c); var d = OpenLayers.String.format(this.callbackTemplate, {id:c}); b = OpenLayers.Util.extend({}, b); b[this.callbackKey] = this.callbackPrefix + d; a = OpenLayers.Util.urlAppend(a, OpenLayers.Util.getParameterString(b)); b = document.createElement("script
"); b.type = "text/javascript
"; b.src = a; b.id = "OpenLayers_Protocol_Script_
" + c; this.pendingRequests[b.id] = b; document.getElementsByTagName("head
")[0].appendChild(b);
470 return b}, destroyRequest:function(a){OpenLayers.Protocol.Script.unregister(a.id.split("_").pop()); delete this.pendingRequests[a.id]; a.parentNode && a.parentNode.removeChild(a)}, handleRead:function(a, b){this.handleResponse(a, b)}, handleResponse:function(a, b){b.callback && (a.data?(a.features = this.parseFeatures(a.data), a.code = OpenLayers.Protocol.Response.SUCCESS):a.code = OpenLayers.Protocol.Response.FAILURE, this.destroyRequest(a.priv), b.callback.call(b.scope, a))}, parseFeatures:function(a){return this.format.read(a)},
471 abort:function(a){if (a)this.destroyRequest(a.priv); else for (var b in this.pendingRequests)this.destroyRequest(this.pendingRequests[b])}, destroy:function(){this.abort(); delete this.params; delete this.format; OpenLayers.Protocol.prototype.destroy.apply(this)}, CLASS_NAME:"OpenLayers.
Protocol.Script
"}); (function(){var a = OpenLayers.Protocol.Script, b = 0; a.registry = {}; a.register = function(c){var d = "c" + ++b; a.registry[d] = function(){c.apply(this, arguments)}; return d}; a.unregister = function(b){delete a.registry[b]}})(); OpenLayers.Format.EncodedPolyline = OpenLayers.Class(OpenLayers.Format, {geometryType:"linestring
", initialize:function(a){OpenLayers.Format.prototype.initialize.apply(this, [a])}, read:function(a){var b; if ("linestring
" == this.geometryType)b = OpenLayers.Geometry.LineString; else if ("linearring
" == this.geometryType)b = OpenLayers.Geometry.LinearRing; else if ("multipoint
" == this.geometryType)b = OpenLayers.Geometry.MultiPoint; else if ("point
" != this.geometryType && "polygon
" != this.geometryType)return null; a = this.decodeDeltas(a,
472 2); for (var c = a.length, d = [], e = 0; e + 1 < c; ){var f = a[e++], g = a[e++]; d.push(new OpenLayers.Geometry.Point(g, f))}return"point
" == this.geometryType?new OpenLayers.Feature.Vector(d[0]):"polygon
" == this.geometryType?new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(d)])):new OpenLayers.Feature.Vector(new b(d))}, decode:function(a, b, c){a = this.decodeDeltas(a, b, c || 1E5); c = a.length; for (var d = [], e = 0; e + (b - 1) < c; ){for (var f = [], g = 0; g < b; ++g)f.push(a[e++]); d.push(f)}return d},
473 write:function(a){a = (a.constructor == Array?a[0]:a).geometry; var b = a.CLASS_NAME.split(".
")[2].toLowerCase(); if ("point
" == b)a = Array(a); else if ("linestring
" == b || "linearring
" == b || "multipoint
" == b)a = a.components; else if ("polygon
" == b)a = a.components[0].components; else return null; for (var b = [], c = a.length, d = 0; d < c; ++d){var e = a[d]; b.push(e.y); b.push(e.x)}return this.encodeDeltas(b, 2)}, encode:function(a, b, c){c = c || 1E5; for (var d = [], e = a.length, f = 0; f < e; ++f)for (var g = a[f], h = 0; h < b; ++h)d.push(g[h]); return this.encodeDeltas(d,
474 b, c)}, encodeDeltas:function(a, b, c){var d, e = Array(b); for (d = 0; d < b; ++d)e[d] = 0; for (var f = a.length, g = 0; g < f; )for (d = 0; d < b; ++d, ++g){var h = a[g], k = h - e[d]; e[d] = h; a[g] = k}return this.encodeFloats(a, c || 1E5)}, decodeDeltas:function(a, b, c){var d, e = Array(b); for (d = 0; d < b; ++d)e[d] = 0; a = this.decodeFloats(a, c || 1E5); c = a.length; for (var f = 0; f < c; )for (d = 0; d < b; ++d, ++f)e[d] += a[f], a[f] = e[d]; return a}, encodeFloats:function(a, b){for (var c = b || 1E5, d = a.length, e = 0; e < d; ++e)a[e] = Math.round(a[e] * c); return this.encodeSignedIntegers(a)}, decodeFloats:function(a,
475 b){for (var c = b || 1E5, d = this.decodeSignedIntegers(a), e = d.length, f = 0; f < e; ++f)d[f] /= c; return d}, encodeSignedIntegers:function(a){for (var b = a.length, c = 0; c < b; ++c){var d = a[c], e = d << 1; 0 > d && (e = ~e); a[c] = e}return this.encodeUnsignedIntegers(a)}, decodeSignedIntegers:function(a){a = this.decodeUnsignedIntegers(a); for (var b = a.length, c = 0; c < b; ++c){var d = a[c]; a[c] = d & 1?~(d >> 1):d >> 1}return a}, encodeUnsignedIntegers:function(a){for (var b = "", c = a.length, d = 0; d < c; ++d)b += this.encodeUnsignedInteger(a[d]); return b}, decodeUnsignedIntegers:function(a){for (var b =
476[], c = 0, d = 0, e = a.length, f = 0; f < e; ++f){var g = a.charCodeAt(f) - 63, c = c | (g & 31) << d; 32 > g?(b.push(c), d = c = 0):d += 5}return b}, encodeFloat:function(a, b){a = Math.round(a * (b || 1E5)); return this.encodeSignedInteger(a)}, decodeFloat:function(a, b){return this.decodeSignedInteger(a) / (b || 1E5)}, encodeSignedInteger:function(a){var b = a << 1; 0 > a && (b = ~b); return this.encodeUnsignedInteger(b)}, decodeSignedInteger:function(a){a = this.decodeUnsignedInteger(a); return a & 1?~(a >> 1):a >> 1}, encodeUnsignedInteger:function(a){for (var b, c = ""; 32 <=
477 a; )b = (32 | a & 31) + 63, c += String.fromCharCode(b), a >>= 5; return c += String.fromCharCode(a + 63)}, decodeUnsignedInteger:function(a){for (var b = 0, c = 0, d = a.length, e = 0; e < d; ++e){var f = a.charCodeAt(e) - 63, b = b | (f & 31) << c; if (32 > f)break; c += 5}return b}, CLASS_NAME:"OpenLayers.
Format.EncodedPolyline
"}); OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {controls:null, autoActivate:!0, defaultControl:null, saveState:!1, allowDepress:!1, activeState:null, initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this, [a]); this.controls = []; this.activeState = {}}, destroy:function(){this.map && this.map.events.unregister("buttonclick", this, this.onButtonClick); OpenLayers.Control.prototype.destroy.apply(this, arguments); for (var a, b = this.controls.length - 1; 0 <= b; b--)a = this.controls[b], a.events &&
478 a.events.un({activate:this.iconOn, deactivate:this.iconOff}), a.panel_div = null; this.activeState = null}, activate:function(){if (OpenLayers.Control.prototype.activate.apply(this, arguments)){for (var a, b = 0, c = this.controls.length; b < c; b++)a = this.controls[b], (a === this.defaultControl || this.saveState && this.activeState[a.id]) && a.activate(); !0 === this.saveState && (this.defaultControl = null); this.redraw(); return!0}return!1}, deactivate:function(){if (OpenLayers.Control.prototype.deactivate.apply(this, arguments)){for (var a,
479 b = 0, c = this.controls.length; b < c; b++)a = this.controls[b], this.activeState[a.id] = a.deactivate(); this.redraw(); return!0}return!1}, draw:function(){OpenLayers.Control.prototype.draw.apply(this, arguments); this.outsideViewport?(this.events.attachToElement(this.div), this.events.register("buttonclick", this, this.onButtonClick)):this.map.events.register("buttonclick", this, this.onButtonClick); this.addControlsToMap(this.controls); return this.div}, redraw:function(){for (var a = this.div.childNodes.length - 1; 0 <= a; a--)this.div.removeChild(this.div.childNodes[a]);
480 this.div.innerHTML = ""; if (this.active)for (var a = 0, b = this.controls.length; a < b; a++)this.div.appendChild(this.controls[a].panel_div)}, activateControl:function(a){if (!this.active)return!1; if (a.type == OpenLayers.Control.TYPE_BUTTON)a.trigger(); else if (a.type == OpenLayers.Control.TYPE_TOGGLE)a.active?a.deactivate():a.activate(); else if (this.allowDepress && a.active)a.deactivate(); else{for (var b, c = 0, d = this.controls.length; c < d; c++)b = this.controls[c], b == a || b.type !== OpenLayers.Control.TYPE_TOOL && null != b.type || b.deactivate();
481 a.activate()}}, addControls:function(a){OpenLayers.Util.isArray(a) || (a = [a]); this.controls = this.controls.concat(a); for (var b = 0, c = a.length; b < c; b++){var d = a[b], e = this.createControlMarkup(d); OpenLayers.Element.addClass(e, d.displayClass + "ItemInactive
"); OpenLayers.Element.addClass(e, "olButton
"); "" == d.title || e.title || (e.title = d.title); d.panel_div = e}this.map && (this.addControlsToMap(a), this.redraw())}, createControlMarkup:function(a){return document.createElement("div
")}, addControlsToMap:function(a){for (var b,
482 c = 0, d = a.length; c < d; c++)b = a[c], !0 === b.autoActivate?(b.autoActivate = !1, this.map.addControl(b), b.autoActivate = !0):(this.map.addControl(b), b.deactivate()), b.events.on({activate:this.iconOn, deactivate:this.iconOff})}, iconOn:function(){var a = this.panel_div; a.className = a.className.replace(RegExp("\\
b(
" + this.displayClass + "Item)Inactive\\
b"), "$1Active
")}, iconOff:function(){var a = this.panel_div; a.className = a.className.replace(RegExp("\\
b(
" + this.displayClass + "Item)Active\\
b"), "$1Inactive
")}, onButtonClick:function(a){var b =
483 this.controls; a = a.buttonElement; for (var c = b.length - 1; 0 <= c; --c)if (b[c].panel_div === a){this.activateControl(b[c]); break}}, getControlsBy:function(a, b){var c = "function
" == typeof b.test; return OpenLayers.Array.filter(this.controls, function(d){return d[a] == b || c && b.test(d[a])})}, getControlsByName:function(a){return this.getControlsBy("name
", a)}, getControlsByClass:function(a){return this.getControlsBy("CLASS_NAME
", a)}, CLASS_NAME:"OpenLayers.
Control.Panel
"}); OpenLayers.Control.Button = OpenLayers.Class(OpenLayers.Control, {type:OpenLayers.Control.TYPE_BUTTON, trigger:function(){}, CLASS_NAME:"OpenLayers.
Control.Button
"}); OpenLayers.Control.ZoomIn = OpenLayers.Class(OpenLayers.Control.Button, {trigger:function(){this.map && this.map.zoomIn()}, CLASS_NAME:"OpenLayers.
Control.ZoomIn
"}); OpenLayers.Control.ZoomOut = OpenLayers.Class(OpenLayers.Control.Button, {trigger:function(){this.map && this.map.zoomOut()}, CLASS_NAME:"OpenLayers.
Control.ZoomOut
"}); OpenLayers.Control.ZoomToMaxExtent = OpenLayers.Class(OpenLayers.Control.Button, {trigger:function(){this.map && this.map.zoomToMaxExtent()}, CLASS_NAME:"OpenLayers.
Control.ZoomToMaxExtent
"}); OpenLayers.Control.ZoomPanel = OpenLayers.Class(OpenLayers.Control.Panel, {initialize:function(a){OpenLayers.Control.Panel.prototype.initialize.apply(this, [a]); this.addControls([new OpenLayers.Control.ZoomIn, new OpenLayers.Control.ZoomToMaxExtent, new OpenLayers.Control.ZoomOut])}, CLASS_NAME:"OpenLayers.
Control.ZoomPanel
"}); OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {URL_HASH_FACTOR:(Math.sqrt(5) - 1) / 2, url:null, params:null, reproject:!1, initialize:function(a, b, c, d){OpenLayers.Layer.prototype.initialize.apply(this, [a, d]); this.url = b; this.params || (this.params = OpenLayers.Util.extend({}, c))}, destroy:function(){this.params = this.url = null; OpenLayers.Layer.prototype.destroy.apply(this, arguments)}, clone:function(a){null == a && (a = new OpenLayers.Layer.HTTPRequest(this.name, this.url, this.params, this.getOptions()));
484 return a = OpenLayers.Layer.prototype.clone.apply(this, [a])}, setUrl:function(a){this.url = a}, mergeNewParams:function(a){this.params = OpenLayers.Util.extend(this.params, a); a = this.redraw(); null != this.map && this.map.events.triggerEvent("changelayer
", {layer:this, property:"params
"}); return a}, redraw:function(a){return a?this.mergeNewParams({_olSalt:Math.random()}):OpenLayers.Layer.prototype.redraw.apply(this, [])}, selectUrl:function(a, b){for (var c = 1, d = 0, e = a.length; d < e; d++)c *= a.charCodeAt(d) * this.URL_HASH_FACTOR,
485 c -= Math.floor(c); return b[Math.floor(c * b.length)]}, getFullRequestString:function(a, b){var c = b || this.url, d = OpenLayers.Util.extend({}, this.params), d = OpenLayers.Util.extend(d, a), e = OpenLayers.Util.getParameterString(d); OpenLayers.Util.isArray(c) && (c = this.selectUrl(e, c)); var e = OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(c)), f; for (f in d)f.toUpperCase()in e && delete d[f]; e = OpenLayers.Util.getParameterString(d); return OpenLayers.Util.urlAppend(c, e)}, CLASS_NAME:"OpenLayers.
Layer.HTTPRequest
"}); OpenLayers.Tile = OpenLayers.Class({events:null, eventListeners:null, id:null, layer:null, url:null, bounds:null, size:null, position:null, isLoading:!1, initialize:function(a, b, c, d, e, f){this.layer = a; this.position = b.clone(); this.setBounds(c); this.url = d; e && (this.size = e.clone()); this.id = OpenLayers.Util.createUniqueID("Tile_
"); OpenLayers.Util.extend(this, f); this.events = new OpenLayers.Events(this); if (this.eventListeners instanceof Object)this.events.on(this.eventListeners)}, unload:function(){this.isLoading && (this.isLoading =
486 !1, this.events.triggerEvent("unload
"))}, destroy:function(){this.position = this.size = this.bounds = this.layer = null; this.eventListeners && this.events.un(this.eventListeners); this.events.destroy(); this.events = this.eventListeners = null}, draw:function(a){a || this.clear(); var b = this.shouldDraw(); b && (!a && !1 === this.events.triggerEvent("beforedraw
")) && (b = null); return b}, shouldDraw:function(){var a = !1, b = this.layer.maxExtent; if (b){var c = this.layer.map, c = c.baseLayer.wrapDateLine && c.getMaxExtent(); this.bounds.intersectsBounds(b,
487{inclusive:!1, worldBounds:c}) && (a = !0)}return a || this.layer.displayOutsideMaxExtent}, setBounds:function(a){a = a.clone(); if (this.layer.map.baseLayer.wrapDateLine){var b = this.layer.map.getMaxExtent(), c = this.layer.map.getResolution(); a = a.wrapDateLine(b, {leftTolerance:c, rightTolerance:c})}this.bounds = a}, moveTo:function(a, b, c){null == c && (c = !0); this.setBounds(a); this.position = b.clone(); c && this.draw()}, clear:function(a){}, CLASS_NAME:"OpenLayers.Tile
"}); OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {url:null, imgDiv:null, frame:null, imageReloadAttempts:null, layerAlphaHack:null, asyncRequestId:null, maxGetUrlLength:null, canvasContext:null, crossOriginKeyword:null, initialize:function(a, b, c, d, e, f){OpenLayers.Tile.prototype.initialize.apply(this, arguments); this.url = d; this.layerAlphaHack = this.layer.alpha && OpenLayers.Util.alphaHack(); if (null != this.maxGetUrlLength || this.layer.gutter || this.layerAlphaHack)this.frame = document.createElement("div
"), this.frame.style.position =
488 "absolute
", this.frame.style.overflow = "hidden
"; null != this.maxGetUrlLength && OpenLayers.Util.extend(this, OpenLayers.Tile.Image.IFrame)}, destroy:function(){this.imgDiv && (this.clear(), this.frame = this.imgDiv = null); this.asyncRequestId = null; OpenLayers.Tile.prototype.destroy.apply(this, arguments)}, draw:function(){var a = OpenLayers.Tile.prototype.draw.apply(this, arguments); a?(this.layer != this.layer.map.baseLayer && this.layer.reproject && (this.bounds = this.getBoundsFromBaseLayer(this.position)), this.isLoading?this._loadEvent =
489 "reload
":(this.isLoading = !0, this._loadEvent = "loadstart
"), this.renderTile(), this.positionTile()):!1 === a && this.unload(); return a}, renderTile:function(){if (this.layer.async){var a = this.asyncRequestId = (this.asyncRequestId || 0) + 1; this.layer.getURLasync(this.bounds, function(b){a == this.asyncRequestId && (this.url = b, this.initImage())}, this)} else this.url = this.layer.getURL(this.bounds), this.initImage()}, positionTile:function(){var a = this.getTile().style, b = this.frame?this.size:this.layer.getImageSize(this.bounds),
490 c = 1; this.layer instanceof OpenLayers.Layer.Grid && (c = this.layer.getServerResolution() / this.layer.map.getResolution()); a.left = this.position.x + "px
"; a.top = this.position.y + "px
"; a.width = Math.round(c * b.w) + "px
"; a.height = Math.round(c * b.h) + "px
"}, clear:function(){OpenLayers.Tile.prototype.clear.apply(this, arguments); var a = this.imgDiv; if (a){var b = this.getTile(); b.parentNode === this.layer.div && this.layer.div.removeChild(b); this.setImgSrc(); !0 === this.layerAlphaHack && (a.style.filter = ""); OpenLayers.Element.removeClass(a,
491 "olImageLoadError
")}this.canvasContext = null}, getImage:function(){if (!this.imgDiv){this.imgDiv = OpenLayers.Tile.Image.IMAGE.cloneNode(!1); var a = this.imgDiv.style; if (this.frame){var b = 0, c = 0; this.layer.gutter && (b = 100 * (this.layer.gutter / this.layer.tileSize.w), c = 100 * (this.layer.gutter / this.layer.tileSize.h)); a.left = - b + "%
"; a.top = - c + "%
"; a.width = 2 * b + 100 + "%
"; a.height = 2 * c + 100 + "%
"}a.visibility = "hidden
"; a.opacity = 0; 1 > this.layer.opacity && (a.filter = "alpha(opacity=
" + 100 * this.layer.opacity + ")
"); a.position = "absolute
";
492 this.layerAlphaHack && (a.paddingTop = a.height, a.height = "0
", a.width = "100%
"); this.frame && this.frame.appendChild(this.imgDiv)}return this.imgDiv}, setImage:function(a){this.imgDiv = a}, initImage:function(){if (this.url || this.imgDiv){this.events.triggerEvent("beforeload
"); this.layer.div.appendChild(this.getTile()); this.events.triggerEvent(this._loadEvent); var a = this.getImage(), b = a.getAttribute("src
") || ""; this.url && OpenLayers.Util.isEquivalentUrl(b, this.url)?this._loadTimeout = window.setTimeout(OpenLayers.Function.bind(this.onImageLoad,
493 this), 0):(this.stopLoading(), this.crossOriginKeyword && a.removeAttribute("crossorigin
"), OpenLayers.Event.observe(a, "load", OpenLayers.Function.bind(this.onImageLoad, this)), OpenLayers.Event.observe(a, "error
", OpenLayers.Function.bind(this.onImageError, this)), this.imageReloadAttempts = 0, this.setImgSrc(this.url))} else this.isLoading = !1}, setImgSrc:function(a){var b = this.imgDiv; a?(b.style.visibility = "hidden
", b.style.opacity = 0, this.crossOriginKeyword && ("data:
" !== a.substr(0, 5)?b.setAttribute("crossorigin
", this.crossOriginKeyword):
494 b.removeAttribute("crossorigin
")), b.src = a):(this.stopLoading(), this.imgDiv = null, b.parentNode && b.parentNode.removeChild(b))}, getTile:function(){return this.frame?this.frame:this.getImage()}, createBackBuffer:function(){if (this.imgDiv && !this.isLoading){var a; this.frame?(a = this.frame.cloneNode(!1), a.appendChild(this.imgDiv)):a = this.imgDiv; this.imgDiv = null; return a}}, onImageLoad:function(){var a = this.imgDiv; this.stopLoading(); a.style.visibility = "inherit"; a.style.opacity = this.layer.opacity; this.isLoading =
495 !1; this.canvasContext = null; this.events.triggerEvent("loadend
"); !0 === this.layerAlphaHack && (a.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=
'" + a.src + "', sizingMethod=
'scale')
")}, onImageError:function(){var a = this.imgDiv; null != a.src && (this.imageReloadAttempts++, this.imageReloadAttempts <= OpenLayers.IMAGE_RELOAD_ATTEMPTS?this.setImgSrc(this.layer.getURL(this.bounds)):(OpenLayers.Element.addClass(a, "olImageLoadError
"), this.events.triggerEvent("loaderror
"), this.onImageLoad()))}, stopLoading:function(){OpenLayers.Event.stopObservingElement(this.imgDiv);
496 window.clearTimeout(this._loadTimeout); delete this._loadTimeout}, getCanvasContext:function(){if (OpenLayers.CANVAS_SUPPORTED && this.imgDiv && !this.isLoading){if (!this.canvasContext){var a = document.createElement("canvas
"); a.width = this.size.w; a.height = this.size.h; this.canvasContext = a.getContext("2
d"); this.canvasContext.drawImage(this.imgDiv, 0, 0)}return this.canvasContext}}, CLASS_NAME:"OpenLayers.Tile.Image
"});
497 OpenLayers.Tile.Image.IMAGE = function(){var a = new Image; a.className = "olTileImage
"; a.galleryImg = "no
"; return a}(); OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {tileSize:null, tileOriginCorner:"bl
", tileOrigin:null, tileOptions:null, tileClass:OpenLayers.Tile.Image, grid:null, singleTile:!1, ratio:1.5, buffer:0, transitionEffect:"resize
", numLoadingTiles:0, serverResolutions:null, loading:!1, backBuffer:null, gridResolution:null, backBufferResolution:null, backBufferLonLat:null, backBufferTimerId:null, removeBackBufferDelay:null, className:null, gridLayout:null, rowSign:null, transitionendEvents:["transitionend
",
498 "webkitTransitionEnd
", "otransitionend
", "oTransitionEnd
"], initialize:function(a, b, c, d){OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this, arguments); this.grid = []; this._removeBackBuffer = OpenLayers.Function.bind(this.removeBackBuffer, this); this.initProperties(); this.rowSign = "t" === this.tileOriginCorner.substr(0, 1)?1: - 1}, initProperties:function(){void 0 === this.options.removeBackBufferDelay && (this.removeBackBufferDelay = this.singleTile?0:2500); void 0 === this.options.className && (this.className = this.singleTile?
499 "olLayerGridSingleTile
":"olLayerGrid
")}, setMap:function(a){OpenLayers.Layer.HTTPRequest.prototype.setMap.call(this, a); OpenLayers.Element.addClass(this.div, this.className)}, removeMap:function(a){this.removeBackBuffer()}, destroy:function(){this.removeBackBuffer(); this.clearGrid(); this.tileSize = this.grid = null; OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this, arguments)}, clearGrid:function(){if (this.grid){for (var a = 0, b = this.grid.length; a < b; a++)for (var c = this.grid[a], d = 0, e = c.length; d < e; d++)this.destroyTile(c[d]);
500 this.grid = []; this.gridLayout = this.gridResolution = null}}, addOptions:function(a, b){var c = void 0 !== a.singleTile && a.singleTile !== this.singleTile; OpenLayers.Layer.HTTPRequest.prototype.addOptions.apply(this, arguments); this.map && c && (this.initProperties(), this.clearGrid(), this.tileSize = this.options.tileSize, this.setTileSize(), this.moveTo(null, !0))}, clone:function(a){null == a && (a = new OpenLayers.Layer.Grid(this.name, this.url, this.params, this.getOptions())); a = OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,
501 [a]); null != this.tileSize && (a.tileSize = this.tileSize.clone()); a.grid = []; a.gridResolution = null; a.backBuffer = null; a.backBufferTimerId = null; a.loading = !1; a.numLoadingTiles = 0; return a}, moveTo:function(a, b, c){OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this, arguments); a = a || this.map.getExtent(); if (null != a){var d = !this.grid.length || b, e = this.getTilesBounds(), f = this.map.getResolution(); this.getServerResolution(f); if (this.singleTile){if (d || !c && !e.containsBounds(a))b && "resize
" !== this.transitionEffect &&
502 this.removeBackBuffer(), b && "resize
" !== this.transitionEffect || this.applyBackBuffer(f), this.initSingleTile(a)} else(d = d || !e.intersectsBounds(a, {worldBounds:this.map.baseLayer.wrapDateLine && this.map.getMaxExtent()}))?(!b || "resize
" !== this.transitionEffect && this.gridResolution !== f || this.applyBackBuffer(f), this.initGriddedTiles(a)):this.moveGriddedTiles()}}, getTileData:function(a){var b = null, c = a.lon, d = a.lat, e = this.grid.length; if (this.map && e){var f = this.map.getResolution(); a = this.tileSize.w; var g = this.tileSize.h,
503 h = this.grid[0][0].bounds, k = h.left, h = h.top; if (c < k && this.map.baseLayer.wrapDateLine)var l = this.map.getMaxExtent().getWidth(), m = Math.ceil((k - c) / l), c = c + l * m; c = (c - k) / (f * a); d = (h - d) / (f * g); f = Math.floor(c); k = Math.floor(d); 0 <= k && k < e && (e = this.grid[k][f]) && (b = {tile:e, i:Math.floor((c - f) * a), j:Math.floor((d - k) * g)})}return b}, destroyTile:function(a){this.removeTileMonitoringHooks(a); a.destroy()}, getServerResolution:function(a){var b = Number.POSITIVE_INFINITY; a = a || this.map.getResolution(); if (this.serverResolutions &&
504 - 1 === OpenLayers.Util.indexOf(this.serverResolutions, a)){var c, d, e, f; for (c = this.serverResolutions.length - 1; 0 <= c; c--){e = this.serverResolutions[c]; d = Math.abs(e - a); if (d > b)break; b = d; f = e}a = f}return a}, getServerZoom:function(){var a = this.getServerResolution(); return this.serverResolutions?OpenLayers.Util.indexOf(this.serverResolutions, a):this.map.getZoomForResolution(a) + (this.zoomOffset || 0)}, applyBackBuffer:function(a){null !== this.backBufferTimerId && this.removeBackBuffer(); var b = this.backBuffer; if (!b){b =
505 this.createBackBuffer(); if (!b)return; a === this.gridResolution?this.div.insertBefore(b, this.div.firstChild):this.map.baseLayer.div.parentNode.insertBefore(b, this.map.baseLayer.div); this.backBuffer = b; var c = this.grid[0][0].bounds; this.backBufferLonLat = {lon:c.left, lat:c.top}; this.backBufferResolution = this.gridResolution}for (var c = this.backBufferResolution / a, d = b.childNodes, e, f = d.length - 1; 0 <= f; --f)e = d[f], e.style.top = (c * e._i * e._h | 0) + "px
", e.style.left = (c * e._j * e._w | 0) + "px
", e.style.width = Math.round(c * e._w) +
506 "px
", e.style.height = Math.round(c * e._h) + "px
"; a = this.getViewPortPxFromLonLat(this.backBufferLonLat, a); c = this.map.layerContainerOriginPx.y; b.style.left = Math.round(a.x - this.map.layerContainerOriginPx.x) + "px
"; b.style.top = Math.round(a.y - c) + "px
"}, createBackBuffer:function(){var a; if (0 < this.grid.length){a = document.createElement("div
"); a.id = this.div.id + "_bb
"; a.className = "olBackBuffer
"; a.style.position = "absolute
"; var b = this.map; a.style.zIndex = "resize
" === this.transitionEffect?this.getZIndex() - 1:b.Z_INDEX_BASE.BaseLayer -
507 (b.getNumLayers() - b.getLayerIndex(this)); for (var b = 0, c = this.grid.length; b < c; b++)for (var d = 0, e = this.grid[b].length; d < e; d++){var f = this.grid[b][d], g = this.grid[b][d].createBackBuffer(); g && (g._i = b, g._j = d, g._w = f.size.w, g._h = f.size.h, g.id = f.id + "_bb
", a.appendChild(g))}}return a}, removeBackBuffer:function(){if (this._transitionElement){for (var a = this.transitionendEvents.length - 1; 0 <= a; --a)OpenLayers.Event.stopObserving(this._transitionElement, this.transitionendEvents[a], this._removeBackBuffer); delete this._transitionElement}this.backBuffer &&
508 (this.backBuffer.parentNode && this.backBuffer.parentNode.removeChild(this.backBuffer), this.backBufferResolution = this.backBuffer = null, null !== this.backBufferTimerId && (window.clearTimeout(this.backBufferTimerId), this.backBufferTimerId = null))}, moveByPx:function(a, b){this.singleTile || this.moveGriddedTiles()}, setTileSize:function(a){this.singleTile && (a = this.map.getSize(), a.h = parseInt(a.h * this.ratio, 10), a.w = parseInt(a.w * this.ratio, 10)); OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this, [a])}, getTilesBounds:function(){var a =
509 null, b = this.grid.length; if (b)var a = this.grid[b - 1][0].bounds, b = this.grid[0].length * a.getWidth(), c = this.grid.length * a.getHeight(), a = new OpenLayers.Bounds(a.left, a.bottom, a.left + b, a.bottom + c); return a}, initSingleTile:function(a){this.events.triggerEvent("retile
"); var b = a.getCenterLonLat(), c = a.getWidth() * this.ratio; a = a.getHeight() * this.ratio; b = new OpenLayers.Bounds(b.lon - c / 2, b.lat - a / 2, b.lon + c / 2, b.lat + a / 2); c = this.map.getLayerPxFromLonLat({lon:b.left, lat:b.top}); this.grid.length || (this.grid[0] = []); (a = this.grid[0][0])?
510 a.moveTo(b, c):(a = this.addTile(b, c), this.addTileMonitoringHooks(a), a.draw(), this.grid[0][0] = a); this.removeExcessTiles(1, 1); this.gridResolution = this.getServerResolution()}, calculateGridLayout:function(a, b, c){var d = c * this.tileSize.w; c *= this.tileSize.h; var e = Math.floor((a.left - b.lon) / d) - this.buffer, f = this.rowSign; a = Math[~f?"floor":"ceil
"](f * (b.lat - a.top + c) / c) - this.buffer * f; return{tilelon:d, tilelat:c, startcol:e, startrow:a}}, getTileOrigin:function(){var a = this.tileOrigin; if (!a)var a = this.getMaxExtent(),
511 b = {tl:["left
", "top
"], tr:["right
", "top
"], bl:["left
", "bottom
"], br:["right
", "bottom
"]}[this.tileOriginCorner], a = new OpenLayers.LonLat(a[b[0]], a[b[1]]); return a}, getTileBoundsForGridIndex:function(a, b){var c = this.getTileOrigin(), d = this.gridLayout, e = d.tilelon, f = d.tilelat, g = d.startcol, d = d.startrow, h = this.rowSign; return new OpenLayers.Bounds(c.lon + (g + b) * e, c.lat - (d + a * h) * f * h, c.lon + (g + b + 1) * e, c.lat - (d + (a - 1) * h) * f * h)}, initGriddedTiles:function(a){this.events.triggerEvent("retile
"); var b = this.map.getSize(), c = this.getTileOrigin(),
512 d = this.map.getResolution(), e = this.getServerResolution(), f = d / e, d = this.tileSize.w / f, f = this.tileSize.h / f, g = Math.ceil(b.h / f) + 2 * this.buffer + 1, b = Math.ceil(b.w / d) + 2 * this.buffer + 1; this.gridLayout = e = this.calculateGridLayout(a, c, e); var c = e.tilelon, h = e.tilelat, e = this.map.layerContainerOriginPx.x, k = this.map.layerContainerOriginPx.y, l = this.getTileBoundsForGridIndex(0, 0), m = this.map.getViewPortPxFromLonLat(new OpenLayers.LonLat(l.left, l.top)); m.x = Math.round(m.x) - e; m.y = Math.round(m.y) - k; var e = [], k = this.map.getCenter(),
513 n = 0; do{var p = this.grid[n]; p || (p = [], this.grid.push(p)); var q = 0; do{var l = this.getTileBoundsForGridIndex(n, q), r = m.clone(); r.x += q * Math.round(d); r.y += n * Math.round(f); var s = p[q]; s?s.moveTo(l, r, !1):(s = this.addTile(l, r), this.addTileMonitoringHooks(s), p.push(s)); r = l.getCenterLonLat(); e.push({tile:s, distance:Math.pow(r.lon - k.lon, 2) + Math.pow(r.lat - k.lat, 2)}); q += 1}while (l.right <= a.right + c * this.buffer || q < b); n += 1}while (l.bottom >= a.bottom - h * this.buffer || n < g); this.removeExcessTiles(n, q); this.gridResolution = d = this.getServerResolution();
514 e.sort(function(a, b){return a.distance - b.distance}); a = 0; for (d = e.length; a < d; ++a)e[a].tile.draw()}, getMaxExtent:function(){return this.maxExtent}, addTile:function(a, b){var c = new this.tileClass(this, b, a, null, this.tileSize, this.tileOptions); this.events.triggerEvent("addtile
", {tile:c}); return c}, addTileMonitoringHooks:function(a){a.onLoadStart = function(){!1 === this.loading && (this.loading = !0, this.events.triggerEvent("loadstart
")); this.events.triggerEvent("tileloadstart
", {tile:a}); this.numLoadingTiles++;
515 !this.singleTile && (this.backBuffer && this.gridResolution === this.backBufferResolution) && OpenLayers.Element.addClass(a.getTile(), "olTileReplacing
")}; a.onLoadEnd = function(b){this.numLoadingTiles--; b = "unload
" === b.type; this.events.triggerEvent("tileloaded
", {tile:a, aborted:b}); if (!this.singleTile && !b && this.backBuffer && this.gridResolution === this.backBufferResolution){var c = a.getTile(); if ("none
" === OpenLayers.Element.getStyle(c, "display
")){var d = document.getElementById(a.id + "_bb
"); d && d.parentNode.removeChild(d)}OpenLayers.Element.removeClass(c,
516 "olTileReplacing
")}if (0 === this.numLoadingTiles){if (this.backBuffer)if (0 === this.backBuffer.childNodes.length)this.removeBackBuffer(); else{this._transitionElement = b?this.div.lastChild:a.imgDiv; b = this.transitionendEvents; for (c = b.length - 1; 0 <= c; --c)OpenLayers.Event.observe(this._transitionElement, b[c], this._removeBackBuffer); this.backBufferTimerId = window.setTimeout(this._removeBackBuffer, this.removeBackBufferDelay)}this.loading = !1; this.events.triggerEvent("loadend
")}}; a.onLoadError = function(){this.events.triggerEvent("tileerror
",
517{tile:a})}; a.events.on({loadstart:a.onLoadStart, loadend:a.onLoadEnd, unload:a.onLoadEnd, loaderror:a.onLoadError, scope:this})}, removeTileMonitoringHooks:function(a){a.unload(); a.events.un({loadstart:a.onLoadStart, loadend:a.onLoadEnd, unload:a.onLoadEnd, loaderror:a.onLoadError, scope:this})}, moveGriddedTiles:function(){for (var a = this.buffer + 1; ; ){var b = this.grid[0][0], c = b.position.x + this.map.layerContainerOriginPx.x, b = b.position.y + this.map.layerContainerOriginPx.y, d = this.getServerResolution() / this.map.getResolution(),
518 d = {w:Math.round(this.tileSize.w * d), h:Math.round(this.tileSize.h * d)}; if (c > - d.w * (a - 1))this.shiftColumn(!0, d); else if (c < - d.w * a)this.shiftColumn(!1, d); else if (b > - d.h * (a - 1))this.shiftRow(!0, d); else if (b < - d.h * a)this.shiftRow(!1, d); else break}}, shiftRow:function(a, b){var c = this.grid, d = a?0:c.length - 1, e = a? - 1:1; this.gridLayout.startrow += e * this.rowSign; for (var f = c[d], g = c[a?"pop
":"shift
"](), h = 0, k = g.length; h < k; h++){var l = g[h], m = f[h].position.clone(); m.y += b.h * e; l.moveTo(this.getTileBoundsForGridIndex(d, h), m)}c[a?
519 "unshift
":"push
"](g)}, shiftColumn:function(a, b){var c = this.grid, d = a?0:c[0].length - 1, e = a? - 1:1; this.gridLayout.startcol += e; for (var f = 0, g = c.length; f < g; f++){var h = c[f], k = h[d].position.clone(), l = h[a?"pop
":"shift
"](); k.x += b.w * e; l.moveTo(this.getTileBoundsForGridIndex(f, d), k); h[a?"unshift
":"push
"](l)}}, removeExcessTiles:function(a, b){for (var c, d; this.grid.length > a; ){var e = this.grid.pop(); c = 0; for (d = e.length; c < d; c++){var f = e[c]; this.destroyTile(f)}}c = 0; for (d = this.grid.length; c < d; c++)for (; this.grid[c].length >
520 b; )e = this.grid[c], f = e.pop(), this.destroyTile(f)}, onMapResize:function(){this.singleTile && (this.clearGrid(), this.setTileSize())}, getTileBounds:function(a){var b = this.maxExtent, c = this.getResolution(), d = c * this.tileSize.w, c = c * this.tileSize.h, e = this.getLonLatFromViewPortPx(a); a = b.left + d * Math.floor((e.lon - b.left) / d); b = b.bottom + c * Math.floor((e.lat - b.bottom) / c); return new OpenLayers.Bounds(a, b, a + d, b + c)}, CLASS_NAME:"OpenLayers.
Layer.Grid
"}); OpenLayers.Format.ArcXML = OpenLayers.Class(OpenLayers.Format.XML, {fontStyleKeys:"antialiasing blockout font fontcolor fontsize fontstyle glowing interval outline printmode shadow transparency
".split(" "), request:null, response:null, initialize:function(a){this.request = new OpenLayers.Format.ArcXML.Request; this.response = new OpenLayers.Format.ArcXML.Response; if (a)if ("feature
" == a.requesttype){this.request.get_image = null; var b = this.request.get_feature.query; this.addCoordSys(b.featurecoordsys, a.featureCoordSys);
521 this.addCoordSys(b.filtercoordsys, a.filterCoordSys); a.polygon?(b.isspatial = !0, b.spatialfilter.polygon = a.polygon):a.envelope && (b.isspatial = !0, b.spatialfilter.envelope = {minx:0, miny:0, maxx:0, maxy:0}, this.parseEnvelope(b.spatialfilter.envelope, a.envelope))} else"image
" == a.requesttype?(this.request.get_feature = null, b = this.request.get_image.properties, this.parseEnvelope(b.envelope, a.envelope), this.addLayers(b.layerlist, a.layers), this.addImageSize(b.imagesize, a.tileSize), this.addCoordSys(b.featurecoordsys,
522 a.featureCoordSys), this.addCoordSys(b.filtercoordsys, a.filterCoordSys)):this.request = null; OpenLayers.Format.XML.prototype.initialize.apply(this, [a])}, parseEnvelope:function(a, b){b && 4 == b.length && (a.minx = b[0], a.miny = b[1], a.maxx = b[2], a.maxy = b[3])}, addLayers:function(a, b){for (var c = 0, d = b.length; c < d; c++)a.push(b[c])}, addImageSize:function(a, b){null !== b && (a.width = b.w, a.height = b.h, a.printwidth = b.w, a.printheight = b.h)}, addCoordSys:function(a, b){"string
" == typeof b?(a.id = parseInt(b), a.string = b):"object" == typeof b &&
523 null !== b.proj && (a.id = b.proj.srsProjNumber, a.string = b.proj.srsCode)}, iserror:function(a){var b = null; a?(a = OpenLayers.Format.XML.prototype.read.apply(this, [a]), a = a.documentElement.getElementsByTagName("ERROR
"), b = null !== a && 0 < a.length):b = "" !== this.response.error; return b}, read:function(a){"string
" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); var b = null; a && a.documentElement && (b = "ARCXML
" == a.documentElement.nodeName?a.documentElement:a.documentElement.getElementsByTagName("ARCXML
")[0]);
524 if (!b || "parsererror
" === b.firstChild.nodeName){var c, d; try{c = a.firstChild.nodeValue, d = a.firstChild.childNodes[1].firstChild.nodeValue} catch (e){}throw{message:"Error parsing the ArcXML request
", error:c, source:d}; }return this.parseResponse(b)}, write:function(a){a || (a = this.request); var b = this.createElementNS("", "ARCXML
"); b.setAttribute("version", "1.1
"); var c = this.createElementNS("", "REQUEST
"); if (null != a.get_image){var d = this.createElementNS("", "GET_IMAGE
"); c.appendChild(d); var e = this.createElementNS("",
525 "PROPERTIES
"); d.appendChild(e); a = a.get_image.properties; null != a.featurecoordsys && (d = this.createElementNS("", "FEATURECOORDSYS
"), e.appendChild(d), 0 === a.featurecoordsys.id?d.setAttribute("string
", a.featurecoordsys.string):d.setAttribute("id
", a.featurecoordsys.id)); null != a.filtercoordsys && (d = this.createElementNS("", "FILTERCOORDSYS
"), e.appendChild(d), 0 === a.filtercoordsys.id?d.setAttribute("string
", a.filtercoordsys.string):d.setAttribute("id
", a.filtercoordsys.id)); null != a.envelope && (d = this.createElementNS("",
526 "ENVELOPE
"), e.appendChild(d), d.setAttribute("minx
", a.envelope.minx), d.setAttribute("miny
", a.envelope.miny), d.setAttribute("maxx
", a.envelope.maxx), d.setAttribute("maxy
", a.envelope.maxy)); d = this.createElementNS("", "IMAGESIZE
"); e.appendChild(d); d.setAttribute("height
", a.imagesize.height); d.setAttribute("width
", a.imagesize.width); if (a.imagesize.height != a.imagesize.printheight || a.imagesize.width != a.imagesize.printwidth)d.setAttribute("printheight
", a.imagesize.printheight), d.setArrtibute("printwidth
", a.imagesize.printwidth);
527 null != a.background && (d = this.createElementNS("", "BACKGROUND
"), e.appendChild(d), d.setAttribute("color
", a.background.color.r + ",
" + a.background.color.g + ",
" + a.background.color.b), null !== a.background.transcolor && d.setAttribute("transcolor
", a.background.transcolor.r + ",
" + a.background.transcolor.g + ",
" + a.background.transcolor.b)); if (null != a.layerlist && 0 < a.layerlist.length)for (d = this.createElementNS("", "LAYERLIST
"), e.appendChild(d), e = 0; e < a.layerlist.length; e++){var f = this.createElementNS("", "LAYERDEF
"); d.appendChild(f);
528 f.setAttribute("id
", a.layerlist[e].id); f.setAttribute("visible
", a.layerlist[e].visible); if ("object" == typeof a.layerlist[e].query){var g = a.layerlist[e].query; if (0 > g.where.length)continue; var h = null, h = "boolean
" == typeof g.spatialfilter && g.spatialfilter?this.createElementNS("", "SPATIALQUERY
"):this.createElementNS("", "QUERY
"); h.setAttribute("where
", g.where); "number
" == typeof g.accuracy && 0 < g.accuracy && h.setAttribute("accuracy
", g.accuracy); "number
" == typeof g.featurelimit && 2E3 > g.featurelimit && h.setAttribute("featurelimit
",
529 g.featurelimit); "string
" == typeof g.subfields && "#ALL#
" != g.subfields && h.setAttribute("subfields
", g.subfields); "string
" == typeof g.joinexpression && 0 < g.joinexpression.length && h.setAttribute("joinexpression
", g.joinexpression); "string
" == typeof g.jointables && 0 < g.jointables.length && h.setAttribute("jointables
", g.jointables); f.appendChild(h)}"object" == typeof a.layerlist[e].renderer && this.addRenderer(f, a.layerlist[e].renderer)}} else null != a.get_feature && (d = this.createElementNS("", "GET_FEATURES
"), d.setAttribute("outputmode
",
530 "newxml
"), d.setAttribute("checkesc
", "true
"), a.get_feature.geometry?d.setAttribute("geometry
", a.get_feature.geometry):d.setAttribute("geometry
", "false
"), a.get_feature.compact && d.setAttribute("compact
", a.get_feature.compact), "number
" == a.get_feature.featurelimit && d.setAttribute("featurelimit
", a.get_feature.featurelimit), d.setAttribute("globalenvelope
", "true
"), c.appendChild(d), null != a.get_feature.layer && 0 < a.get_feature.layer.length && (e = this.createElementNS("", "LAYER
"), e.setAttribute("id
", a.get_feature.layer),
531 d.appendChild(e)), a = a.get_feature.query, null != a && (e = null, e = a.isspatial?this.createElementNS("", "SPATIALQUERY
"):this.createElementNS("", "QUERY
"), d.appendChild(e), "number
" == typeof a.accuracy && e.setAttribute("accuracy
", a.accuracy), null != a.featurecoordsys && (d = this.createElementNS("", "FEATURECOORDSYS
"), 0 == a.featurecoordsys.id?d.setAttribute("string
", a.featurecoordsys.string):d.setAttribute("id
", a.featurecoordsys.id), e.appendChild(d)), null != a.filtercoordsys && (d = this.createElementNS("", "FILTERCOORDSYS
"),
532 0 === a.filtercoordsys.id?d.setAttribute("string
", a.filtercoordsys.string):d.setAttribute("id
", a.filtercoordsys.id), e.appendChild(d)), 0 < a.buffer && (d = this.createElementNS("", "BUFFER
"), d.setAttribute("distance
", a.buffer), e.appendChild(d)), a.isspatial && (d = this.createElementNS("", "SPATIALFILTER
"), d.setAttribute("relation
", a.spatialfilter.relation), e.appendChild(d), a.spatialfilter.envelope?(f = this.createElementNS("", "ENVELOPE
"), f.setAttribute("minx
", a.spatialfilter.envelope.minx), f.setAttribute("miny
", a.spatialfilter.envelope.miny),
533 f.setAttribute("maxx
", a.spatialfilter.envelope.maxx), f.setAttribute("maxy
", a.spatialfilter.envelope.maxy), d.appendChild(f)):"object" == typeof a.spatialfilter.polygon && d.appendChild(this.writePolygonGeometry(a.spatialfilter.polygon))), null != a.where && 0 < a.where.length && e.setAttribute("where
", a.where))); b.appendChild(c); return OpenLayers.Format.XML.prototype.write.apply(this, [b])}, addGroupRenderer:function(a, b){var c = this.createElementNS("", "GROUPRENDERER
"); a.appendChild(c); for (var d = 0; d < b.length; d++)this.addRenderer(c,
534 b[d])}, addRenderer:function(a, b){if (OpenLayers.Util.isArray(b))this.addGroupRenderer(a, b); else{var c = this.createElementNS("", b.type.toUpperCase() + "RENDERER
"); a.appendChild(c); "VALUEMAPRENDERER
" == c.tagName?this.addValueMapRenderer(c, b):"VALUEMAPLABELRENDERER
" == c.tagName?this.addValueMapLabelRenderer(c, b):"SIMPLELABELRENDERER
" == c.tagName?this.addSimpleLabelRenderer(c, b):"SCALEDEPENDENTRENDERER
" == c.tagName && this.addScaleDependentRenderer(c, b)}}, addScaleDependentRenderer:function(a, b){"string
" != typeof b.lower &&
535 "number
" != typeof b.lower || a.setAttribute("lower
", b.lower); "string
" != typeof b.upper && "number
" != typeof b.upper || a.setAttribute("upper
", b.upper); this.addRenderer(a, b.renderer)}, addValueMapLabelRenderer:function(a, b){a.setAttribute("lookupfield
", b.lookupfield); a.setAttribute("labelfield
", b.labelfield); if ("object" == typeof b.exacts)for (var c = 0, d = b.exacts.length; c < d; c++){var e = b.exacts[c], f = this.createElementNS("", "EXACT
"); "string
" == typeof e.value && f.setAttribute("value
", e.value); "string
" == typeof e.label &&
536 f.setAttribute("label
", e.label); "string
" == typeof e.method && f.setAttribute("method
", e.method); a.appendChild(f); if ("object" == typeof e.symbol){var g = null; "text
" == e.symbol.type && (g = this.createElementNS("", "TEXTSYMBOL
")); if (null != g){for (var h = this.fontStyleKeys, k = 0, l = h.length; k < l; k++){var m = h[k]; e.symbol[m] && g.setAttribute(m, e.symbol[m])}f.appendChild(g)}}}}, addValueMapRenderer:function(a, b){a.setAttribute("lookupfield
", b.lookupfield); if ("object" == typeof b.ranges)for (var c = 0, d = b.ranges.length; c < d; c++){var e =
537 b.ranges[c], f = this.createElementNS("", "RANGE
"); f.setAttribute("lower
", e.lower); f.setAttribute("upper
", e.upper); a.appendChild(f); if ("object" == typeof e.symbol){var g = null; "simplepolygon
" == e.symbol.type && (g = this.createElementNS("", "SIMPLEPOLYGONSYMBOL
")); null != g && ("string
" == typeof e.symbol.boundarycolor && g.setAttribute("boundarycolor
", e.symbol.boundarycolor), "string
" == typeof e.symbol.fillcolor && g.setAttribute("fillcolor
", e.symbol.fillcolor), "number
" == typeof e.symbol.filltransparency && g.setAttribute("filltransparency
",
538 e.symbol.filltransparency), f.appendChild(g))}} else if ("object" == typeof b.exacts)for (c = 0, d = b.exacts.length; c < d; c++)e = b.exacts[c], f = this.createElementNS("", "EXACT
"), "string
" == typeof e.value && f.setAttribute("value
", e.value), "string
" == typeof e.label && f.setAttribute("label
", e.label), "string
" == typeof e.method && f.setAttribute("method
", e.method), a.appendChild(f), "object" == typeof e.symbol && (g = null, "simplemarker
" == e.symbol.type && (g = this.createElementNS("", "SIMPLEMARKERSYMBOL
")), null != g && ("string
" == typeof e.symbol.antialiasing &&
539 g.setAttribute("antialiasing
", e.symbol.antialiasing), "string
" == typeof e.symbol.color && g.setAttribute("color
", e.symbol.color), "string
" == typeof e.symbol.outline && g.setAttribute("outline
", e.symbol.outline), "string
" == typeof e.symbol.overlap && g.setAttribute("overlap
", e.symbol.overlap), "string
" == typeof e.symbol.shadow && g.setAttribute("shadow
", e.symbol.shadow), "number
" == typeof e.symbol.transparency && g.setAttribute("transparency
", e.symbol.transparency), "string
" == typeof e.symbol.usecentroid && g.setAttribute("usecentroid
",
540 e.symbol.usecentroid), "number
" == typeof e.symbol.width && g.setAttribute("width
", e.symbol.width), f.appendChild(g)))}, addSimpleLabelRenderer:function(a, b){a.setAttribute("field
", b.field); for (var c = "featureweight howmanylabels labelbufferratio labelpriorities labelweight linelabelposition rotationalangles
".split(" "), d = 0, e = c.length; d < e; d++){var f = c[d]; b[f] && a.setAttribute(f, b[f])}if ("text
" == b.symbol.type){var g = b.symbol, h = this.createElementNS("", "TEXTSYMBOL
"); a.appendChild(h); c = this.fontStyleKeys; d = 0;
541 for (e = c.length; d < e; d++)f = c[d], g[f] && h.setAttribute(f, b[f])}}, writePolygonGeometry:function(a){if (!(a instanceof OpenLayers.Geometry.Polygon))throw{message:"Cannot write polygon geometry to ArcXML with an
" + a.CLASS_NAME + " object.
", geometry:a}; for (var b = this.createElementNS("", "POLYGON
"), c = 0, d = a.components.length; c < d; c++){for (var e = a.components[c], f = this.createElementNS("", "RING
"), g = 0, h = e.components.length; g < h; g++){var k = e.components[g], l = this.createElementNS("", "POINT
"); l.setAttribute("x", k.x); l.setAttribute("y",
542 k.y); f.appendChild(l)}b.appendChild(f)}return b}, parseResponse:function(a){"string
" == typeof a && (a = (new OpenLayers.Format.XML).read(a)); var b = new OpenLayers.Format.ArcXML.Response, c = a.getElementsByTagName("ERROR
"); if (null != c && 0 < c.length)b.error = this.getChildValue(c, "Unknown error.
"); else{c = a.getElementsByTagName("RESPONSE
"); if (null == c || 0 == c.length)return b.error = "No RESPONSE tag found in ArcXML response.
", b; var d = c[0].firstChild.nodeName; "#text
" == d && (d = c[0].firstChild.nextSibling.nodeName); if ("IMAGE
" ==
543 d)c = a.getElementsByTagName("ENVELOPE
"), a = a.getElementsByTagName("OUTPUT
"), null == c || 0 == c.length?b.error = "No ENVELOPE tag found in ArcXML response.
":null == a || 0 == a.length?b.error = "No OUTPUT tag found in ArcXML response.
":(c = this.parseAttributes(c[0]), d = this.parseAttributes(a[0]), b.image = "string
" == typeof d.type?{envelope:c, output:{type:d.type, data:this.getChildValue(a[0])}}:{envelope:c, output:d}); else if ("FEATURES
" == d){if (a = c[0].getElementsByTagName("FEATURES
"), c = a[0].getElementsByTagName("FEATURECOUNT
"),
544 b.features.featurecount = c[0].getAttribute("count
"), 0 < b.features.featurecount)for (c = a[0].getElementsByTagName("ENVELOPE
"), b.features.envelope = this.parseAttributes(c[0], "number
"), a = a[0].getElementsByTagName("FEATURE
"), c = 0; c < a.length; c++){for (var d = new OpenLayers.Feature.Vector, e = a[c].getElementsByTagName("FIELD
"), f = 0; f < e.length; f++){var g = e[f].getAttribute("name
"), h = e[f].getAttribute("value
"); d.attributes[g] = h}e = a[c].getElementsByTagName("POLYGON
"); if (0 < e.length){e = e[0].getElementsByTagName("RING
");
545 f = []; for (g = 0; g < e.length; g++){h = []; h.push(this.parsePointGeometry(e[g])); for (var k = e[g].getElementsByTagName("HOLE
"), l = 0; l < k.length; l++)h.push(this.parsePointGeometry(k[l])); f.push(new OpenLayers.Geometry.Polygon(h))}d.geometry = 1 == f.length?f[0]:new OpenLayers.Geometry.MultiPolygon(f)}b.features.feature.push(d)}} else b.error = "Unidentified response type.
"}return b}, parseAttributes:function(a, b){for (var c = {}, d = 0; d < a.attributes.length; d++)c[a.attributes[d].nodeName] = "number
" == b?parseFloat(a.attributes[d].nodeValue):
546 a.attributes[d].nodeValue; return c}, parsePointGeometry:function(a){var b = [], c = a.getElementsByTagName("COORDS
"); if (0 < c.length)for (a = this.getChildValue(c[0]), a = a.split(/;/), c = 0; c < a.length; c++){var d = a[c].split(/ /); b.push(new OpenLayers.Geometry.Point(d[0], d[1]))} else if (a = a.getElementsByTagName("POINT
"), 0 < a.length)for (c = 0; c < a.length; c++)b.push(new OpenLayers.Geometry.Point(parseFloat(a[c].getAttribute("x")), parseFloat(a[c].getAttribute("y")))); return new OpenLayers.Geometry.LinearRing(b)}, CLASS_NAME:"OpenLayers.
Format.ArcXML
"});
547 OpenLayers.Format.ArcXML.Request = OpenLayers.Class({initialize:function(a){return OpenLayers.Util.extend(this, {get_image:{properties:{background:null, draw:!0, envelope:{minx:0, miny:0, maxx:0, maxy:0}, featurecoordsys:{id:0, string:"", datumtransformid:0, datumtransformstring:""}, filtercoordsys:{id:0, string:"", datumtransformid:0, datumtransformstring:""}, imagesize:{height:0, width:0, dpi:96, printheight:0, printwidth:0, scalesymbols:!1}, layerlist:[], output:{baseurl:"", legendbaseurl:"", legendname:"", legendpath:"",
548 legendurl:"", name:"", path:"", type:"jpg
", url:""}}}, get_feature:{layer:"", query:{isspatial:!1, featurecoordsys:{id:0, string:"", datumtransformid:0, datumtransformstring:""}, filtercoordsys:{id:0, string:"", datumtransformid:0, datumtransformstring:""}, buffer:0, where:"", spatialfilter:{relation:"envelope_intersection
", envelope:null}}}, environment:{separators:{cs:" ", ts:";
"}}, layer:[], workspaces:[]})}, CLASS_NAME:"OpenLayers.Format.ArcXML.Request
"});
549 OpenLayers.Format.ArcXML.Response = OpenLayers.Class({initialize:function(a){return OpenLayers.Util.extend(this, {image:{envelope:null, output:""}, features:{featurecount:0, envelope:null, feature:[]}, error:""})}, CLASS_NAME:"OpenLayers.Format.ArcXML.Response
"}); (function(){function a(){this._object = f && !k?new f:new window.ActiveXObject("Microsoft.XMLHTTP
"); this._listeners = []}function b(){return new a}function c(a){b.onreadystatechange && b.onreadystatechange.apply(a); a.dispatchEvent({type:"readystatechange
", bubbles:!1, cancelable:!1, timeStamp:new Date + 0})}function d(a){try{a.responseText = a._object.responseText} catch (b){}try{var c; var d = a._object, e = d.responseXML, f = d.responseText; h && (f && e && !e.documentElement && d.getResponseHeader("Content-
Type").match(/[^\/]+\/[^\+]+\+xml/)) &&
550 (e = new window.ActiveXObject("Microsoft.XMLDOM
"), e.async = !1, e.validateOnParse = !1, e.loadXML(f)); c = e && (h && 0 != e.parseError || !e.documentElement || e.documentElement && "parsererror
" == e.documentElement.tagName)?null:e; a.responseXML = c} catch (g){}try{a.status = a._object.status} catch (k){}try{a.statusText = a._object.statusText} catch (u){}}function e(a){a._object.onreadystatechange = new window.Function}var f = window.XMLHttpRequest, g = !!window.controllers, h = window.document.all && !window.opera, k = h && window.navigator.userAgent.match(/MSIE 7.0/);
551 b.prototype = a.prototype; g && f.wrapped && (b.wrapped = f.wrapped); b.UNSENT = 0; b.OPENED = 1; b.HEADERS_RECEIVED = 2; b.LOADING = 3; b.DONE = 4; b.prototype.readyState = b.UNSENT; b.prototype.responseText = ""; b.prototype.responseXML = null; b.prototype.status = 0; b.prototype.statusText = ""; b.prototype.priority = "NORMAL
"; b.prototype.onreadystatechange = null; b.onreadystatechange = null; b.onopen = null; b.onsend = null; b.onabort = null; b.prototype.open = function(a, f, k, p, q){delete this._headers; 3 > arguments.length && (k = !0); this._async = k; var r = this,
552 s = this.readyState, t; h && k && (t = function(){s != b.DONE && (e(r), r.abort())}, window.attachEvent("onunload
", t)); b.onopen && b.onopen.apply(this, arguments); 4 < arguments.length?this._object.open(a, f, k, p, q):3 < arguments.length?this._object.open(a, f, k, p):this._object.open(a, f, k); this.readyState = b.OPENED; c(this); this._object.onreadystatechange = function(){if (!g || k)r.readyState = r._object.readyState, d(r), r._aborted?r.readyState = b.UNSENT:(r.readyState == b.DONE && (delete r._data, e(r), h && k && window.detachEvent("onunload
", t)),
553 s != r.readyState && c(r), s = r.readyState)}}; b.prototype.send = function(a){b.onsend && b.onsend.apply(this, arguments); arguments.length || (a = null); a && a.nodeType && (a = window.XMLSerializer?(new window.XMLSerializer).serializeToString(a):a.xml, this._headers["Content-
Type"] || this._object.setRequestHeader("Content-
Type", "application/xml
")); this._data = a; a:if (this._object.send(this._data), g && !this._async)for (this.readyState = b.OPENED, d(this); this.readyState < b.DONE; )if (this.readyState++, c(this), this._aborted)break a};
554 b.prototype.abort = function(){b.onabort && b.onabort.apply(this, arguments); this.readyState > b.UNSENT && (this._aborted = !0); this._object.abort(); e(this); this.readyState = b.UNSENT; delete this._data}; b.prototype.getAllResponseHeaders = function(){return this._object.getAllResponseHeaders()}; b.prototype.getResponseHeader = function(a){return this._object.getResponseHeader(a)}; b.prototype.setRequestHeader = function(a, b){this._headers || (this._headers = {}); this._headers[a] = b; return this._object.setRequestHeader(a, b)};
555 b.prototype.addEventListener = function(a, b, c){for (var d = 0, e; e = this._listeners[d]; d++)if (e[0] == a && e[1] == b && e[2] == c)return; this._listeners.push([a, b, c])}; b.prototype.removeEventListener = function(a, b, c){for (var d = 0, e; (e = this._listeners[d]) && (e[0] != a || e[1] != b || e[2] != c); d++); e && this._listeners.splice(d, 1)}; b.prototype.dispatchEvent = function(a){a = {type:a.type, target:this, currentTarget:this, eventPhase:2, bubbles:a.bubbles, cancelable:a.cancelable, timeStamp:a.timeStamp, stopPropagation:function(){}, preventDefault:function(){},
556 initEvent:function(){}}; "readystatechange
" == a.type && this.onreadystatechange && (this.onreadystatechange.handleEvent || this.onreadystatechange).apply(this, [a]); for (var b = 0, c; c = this._listeners[b]; b++)c[0] != a.type || c[2] || (c[1].handleEvent || c[1]).apply(this, [a])}; b.prototype.toString = function(){return"[
object XMLHttpRequest]
"}; b.toString = function(){return"[XMLHttpRequest]
"}; window.Function.prototype.apply || (window.Function.prototype.apply = function(a, b){b || (b = []); a.__func = this; a.__func(b[0], b[1], b[2], b[3],
557 b[4]); delete a.__func}); OpenLayers.Request || (OpenLayers.Request = {}); OpenLayers.Request.XMLHttpRequest = b})(); OpenLayers.ProxyHost = ""; OpenLayers.Request || (OpenLayers.Request = {});
558 OpenLayers.Util.extend(OpenLayers.Request, {DEFAULT_CONFIG:{method:"GET
", url:window.location.href, async:!0, user:void 0, password:void 0, params:null, proxy:OpenLayers.ProxyHost, headers:{}, data:null, callback:function(){}, success:null, failure:null, scope:null}, URL_SPLIT_REGEX:/([^:]*:)\/\/([^:]*:?[^@]*@)?([^:\/\?]*):?([^\/\?]*)/, events:new OpenLayers.Events(this), makeSameOrigin:function(a, b){var c = 0 !== a.indexOf("http
"), d = !c && a.match(this.URL_SPLIT_REGEX); if (d){var e = window.location, c = d[1] == e.protocol && d[3] ==
559 e.hostname, d = d[4], e = e.port; if (80 != d && "" != d || "80
" != e && "" != e)c = c && d == e}c || b && (a = "function" == typeof b?b(a):b + encodeURIComponent(a)); return a}, issue:function(a){var b = OpenLayers.Util.extend(this.DEFAULT_CONFIG, {proxy:OpenLayers.ProxyHost}); a = a || {}; a.headers = a.headers || {}; a = OpenLayers.Util.applyDefaults(a, b); a.headers = OpenLayers.Util.applyDefaults(a.headers, b.headers); var b = !1, c; for (c in a.headers)a.headers.hasOwnProperty(c) && "x-requested-with
" === c.toLowerCase() && (b = !0); !1 === b && (a.headers["X-Requested-With
"] =
560 "XMLHttpRequest
"); var d = new OpenLayers.Request.XMLHttpRequest, e = OpenLayers.Util.urlAppend(a.url, OpenLayers.Util.getParameterString(a.params || {})), e = OpenLayers.Request.makeSameOrigin(e, a.proxy); d.open(a.method, e, a.async, a.user, a.password); for (var f in a.headers)d.setRequestHeader(f, a.headers[f]); var g = this.events, h = this; d.onreadystatechange = function(){d.readyState == OpenLayers.Request.XMLHttpRequest.DONE && !1 !== g.triggerEvent("complete
", {request:d, config:a, requestUrl:e}) && h.runCallbacks({request:d, config:a,
561 requestUrl:e})}; !1 === a.async?d.send(a.data):window.setTimeout(function(){0 !== d.readyState && d.send(a.data)}, 0); return d}, runCallbacks:function(a){var b = a.request, c = a.config, d = c.scope?OpenLayers.Function.bind(c.callback, c.scope):c.callback, e; c.success && (e = c.scope?OpenLayers.Function.bind(c.success, c.scope):c.success); var f; c.failure && (f = c.scope?OpenLayers.Function.bind(c.failure, c.scope):c.failure); "file:
" == OpenLayers.Util.createUrlObject(c.url).protocol && b.responseText && (b.status = 200); d(b); if (!b.status ||
562 200 <= b.status && 300 > b.status)this.events.triggerEvent("success
", a), e && e(b); b.status && (200 > b.status || 300 <= b.status) && (this.events.triggerEvent("failure
", a), f && f(b))}, GET:function(a){a = OpenLayers.Util.extend(a, {method:"GET
"}); return OpenLayers.Request.issue(a)}, POST:function(a){a = OpenLayers.Util.extend(a, {method:"POST
"}); a.headers = a.headers?a.headers:{}; "CONTENT-TYPE
"in OpenLayers.Util.upperCaseObject(a.headers) || (a.headers["Content-
Type"] = "application/xml
"); return OpenLayers.Request.issue(a)}, PUT:function(a){a =
563 OpenLayers.Util.extend(a, {method:"PUT
"}); a.headers = a.headers?a.headers:{}; "CONTENT-TYPE
"in OpenLayers.Util.upperCaseObject(a.headers) || (a.headers["Content-
Type"] = "application/xml
"); return OpenLayers.Request.issue(a)}, DELETE:function(a){a = OpenLayers.Util.extend(a, {method:"DELETE
"}); return OpenLayers.Request.issue(a)}, HEAD:function(a){a = OpenLayers.Util.extend(a, {method:"HEAD
"}); return OpenLayers.Request.issue(a)}, OPTIONS:function(a){a = OpenLayers.Util.extend(a, {method:"OPTIONS
"}); return OpenLayers.Request.issue(a)}}); OpenLayers.Layer.ArcIMS = OpenLayers.Class(OpenLayers.Layer.Grid, {DEFAULT_PARAMS:{ClientVersion:"9.2
", ServiceName:""}, featureCoordSys:"4326
", filterCoordSys:"4326
", layers:null, async:!0, name:"ArcIMS
", isBaseLayer:!0, DEFAULT_OPTIONS:{tileSize:new OpenLayers.Size(512, 512), featureCoordSys:"4326
", filterCoordSys:"4326
", layers:null, isBaseLayer:!0, async:!0, name:"ArcIMS
"}, initialize:function(a, b, c){this.tileSize = new OpenLayers.Size(512, 512); this.params = OpenLayers.Util.applyDefaults({ServiceName:c.serviceName},
564 this.DEFAULT_PARAMS); this.options = OpenLayers.Util.applyDefaults(c, this.DEFAULT_OPTIONS); OpenLayers.Layer.Grid.prototype.initialize.apply(this, [a, b, this.params, c]); this.transparent && (this.isBaseLayer || (this.isBaseLayer = !1), "image/jpeg
" == this.format && (this.format = OpenLayers.Util.alphaHack()?"image/gif
":"image/png
")); null === this.options.layers && (this.options.layers = [])}, getURL:function(a){var b = ""; a = this.adjustBounds(a); a = new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options, {requesttype:"image
",
565 envelope:a.toArray(), tileSize:this.tileSize})); a = new OpenLayers.Request.POST({url:this.getFullRequestString(), data:a.write(), async:!1}); null != a && (b = a.responseXML, b && b.documentElement || (b = a.responseText), b = (new OpenLayers.Format.ArcXML).read(b), b = this.getUrlOrImage(b.image.output)); return b}, getURLasync:function(a, b, c){a = this.adjustBounds(a); a = new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options, {requesttype:"image
", envelope:a.toArray(), tileSize:this.tileSize})); OpenLayers.Request.POST({url:this.getFullRequestString(),
566 async:!0, data:a.write(), callback:function(a){var e = a.responseXML; e && e.documentElement || (e = a.responseText); a = (new OpenLayers.Format.ArcXML).read(e); b.call(c, this.getUrlOrImage(a.image.output))}, scope:this})}, getUrlOrImage:function(a){var b = ""; a.url?b = a.url:a.data && (b = "data:image/
" + a.type + ";base64,
" + a.data); return b}, setLayerQuery:function(a, b){for (var c = 0; c < this.options.layers.length; c++)if (a == this.options.layers[c].id){this.options.layers[c].query = b; return}this.options.layers.push({id:a, visible:!0,
567 query:b})}, getFeatureInfo:function(a, b, c){var d = c.buffer || 1, e = c.callback || function(){}, f = c.scope || window, g = {}; OpenLayers.Util.extend(g, this.options); g.requesttype = "feature
"; a instanceof OpenLayers.LonLat?(g.polygon = null, g.envelope = [a.lon - d, a.lat - d, a.lon + d, a.lat + d]):a instanceof OpenLayers.Geometry.Polygon && (g.envelope = null, g.polygon = a); var h = new OpenLayers.Format.ArcXML(g); OpenLayers.Util.extend(h.request.get_feature, c); h.request.get_feature.layer = b.id; "number
" == typeof b.query.accuracy?h.request.get_feature.query.accuracy =
568 b.query.accuracy:(a = this.map.getCenter(), c = this.map.getViewPortPxFromLonLat(a), c.x++, c = this.map.getLonLatFromPixel(c), h.request.get_feature.query.accuracy = c.lon - a.lon); h.request.get_feature.query.where = b.query.where; h.request.get_feature.query.spatialfilter.relation = "area_intersection
"; OpenLayers.Request.POST({url:this.getFullRequestString({CustomService:"Query
"}), data:h.write(), callback:function(a){a = h.parseResponse(a.responseText); h.iserror()?e.call(f, null):e.call(f, a.features)}})}, clone:function(a){null ==
569 a && (a = new OpenLayers.Layer.ArcIMS(this.name, this.url, this.getOptions())); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this, [a])}, CLASS_NAME:"OpenLayers.Layer.ArcIMS
"}); OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {slideFactor:50, slideRatio:null, buttons:null, position:null, initialize:function(a){this.position = new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X, OpenLayers.Control.PanZoom.Y); OpenLayers.Control.prototype.initialize.apply(this, arguments)}, destroy:function(){this.map && this.map.events.unregister("buttonclick", this, this.onButtonClick); this.removeButtons(); this.position = this.buttons = null; OpenLayers.Control.prototype.destroy.apply(this, arguments)},
570 setMap:function(a){OpenLayers.Control.prototype.setMap.apply(this, arguments); this.map.events.register("buttonclick", this, this.onButtonClick)}, draw:function(a){OpenLayers.Control.prototype.draw.apply(this, arguments); a = this.position; this.buttons = []; var b = {w:18, h:18}, c = new OpenLayers.Pixel(a.x + b.w / 2, a.y); this._addButton("panup
", "north-mini.png
", c, b); a.y = c.y + b.h; this._addButton("panleft
", "west-mini.png
", a, b); this._addButton("panright
", "east-mini.png
", a.add(b.w, 0), b); this._addButton("pandown
", "south-mini.png
",
571 c.add(0, 2 * b.h), b); this._addButton("zoomin
", "zoom-plus-mini.png
", c.add(0, 3 * b.h + 5), b); this._addButton("zoomworld
", "zoom-world-mini.png
", c.add(0, 4 * b.h + 5), b); this._addButton("zoomout
", "zoom-minus-mini.png
", c.add(0, 5 * b.h + 5), b); return this.div}, _addButton:function(a, b, c, d){b = OpenLayers.Util.getImageLocation(b); c = OpenLayers.Util.createAlphaImageDiv(this.id + "_" + a, c, d, b, "absolute
"); c.style.cursor = "pointer
"; this.div.appendChild(c); c.action = a; c.className = "olButton
"; this.buttons.push(c); return c}, _removeButton:function(a){this.div.removeChild(a);
572 OpenLayers.Util.removeItem(this.buttons, a)}, removeButtons:function(){for (var a = this.buttons.length - 1; 0 <= a; --a)this._removeButton(this.buttons[a])}, onButtonClick:function(a){switch (a.buttonElement.action){case "panup
":this.map.pan(0, - this.getSlideFactor("h")); break; case "pandown
":this.map.pan(0, this.getSlideFactor("h")); break; case "panleft
":this.map.pan( - this.getSlideFactor("w"), 0); break; case "panright
":this.map.pan(this.getSlideFactor("w"), 0); break; case "zoomin
":this.map.zoomIn(); break; case "zoomout
":this.map.zoomOut();
573 break; case "zoomworld
":this.map.zoomToMaxExtent()}}, getSlideFactor:function(a){return this.slideRatio?this.map.getSize()[a] * this.slideRatio:this.slideFactor}, CLASS_NAME:"OpenLayers.Control.PanZoom
"}); OpenLayers.Control.PanZoom.X = 4; OpenLayers.Control.PanZoom.Y = 4; OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {zoomStopWidth:18, zoomStopHeight:11, slider:null, sliderEvents:null, zoombarDiv:null, zoomWorldIcon:!1, panIcons:!0, forceFixedZoomLevel:!1, mouseDragStart:null, deltaY:null, zoomStart:null, destroy:function(){this._removeZoomBar(); this.map.events.un({changebaselayer:this.redraw, updatesize:this.redraw, scope:this}); OpenLayers.Control.PanZoom.prototype.destroy.apply(this, arguments); delete this.mouseDragStart; delete this.zoomStart}, setMap:function(a){OpenLayers.Control.PanZoom.prototype.setMap.apply(this,
574 arguments); this.map.events.on({changebaselayer:this.redraw, updatesize:this.redraw, scope:this})}, redraw:function(){null != this.div && (this.removeButtons(), this._removeZoomBar()); this.draw()}, draw:function(a){OpenLayers.Control.prototype.draw.apply(this, arguments); a = this.position.clone(); this.buttons = []; var b = {w:18, h:18}; if (this.panIcons){var c = new OpenLayers.Pixel(a.x + b.w / 2, a.y), d = b.w; this.zoomWorldIcon && (c = new OpenLayers.Pixel(a.x + b.w, a.y)); this._addButton("panup
", "north-mini.png
", c, b); a.y = c.y + b.h;
575 this._addButton("panleft
", "west-mini.png
", a, b); this.zoomWorldIcon && (this._addButton("zoomworld
", "zoom-world-mini.png
", a.add(b.w, 0), b), d *= 2); this._addButton("panright
", "east-mini.png
", a.add(d, 0), b); this._addButton("pandown
", "south-mini.png
", c.add(0, 2 * b.h), b); this._addButton("zoomin
", "zoom-plus-mini.png
", c.add(0, 3 * b.h + 5), b); c = this._addZoomBar(c.add(0, 4 * b.h + 5)); this._addButton("zoomout
", "zoom-minus-mini.png
", c, b)} else this._addButton("zoomin
", "zoom-plus-mini.png
", a, b), c = this._addZoomBar(a.add(0, b.h)),
576 this._addButton("zoomout
", "zoom-minus-mini.png
", c, b), this.zoomWorldIcon && (c = c.add(0, b.h + 3), this._addButton("zoomworld
", "zoom-world-mini.png
", c, b)); return this.div}, _addZoomBar:function(a){var b = OpenLayers.Util.getImageLocation("slider.png
"), c = this.id + "_" + this.map.id, d = this.map.getMinZoom(), e = this.map.getNumZoomLevels() - 1 - this.map.getZoom(), e = OpenLayers.Util.createAlphaImageDiv(c, a.add( - 1, e * this.zoomStopHeight), {w:20, h:9}, b, "absolute
"); e.style.cursor = "move
"; this.slider = e; this.sliderEvents = new OpenLayers.Events(this,
577 e, null, !0, {includeXY:!0}); this.sliderEvents.on({touchstart:this.zoomBarDown, touchmove:this.zoomBarDrag, touchend:this.zoomBarUp, mousedown:this.zoomBarDown, mousemove:this.zoomBarDrag, mouseup:this.zoomBarUp}); var f = {w:this.zoomStopWidth, h:this.zoomStopHeight * (this.map.getNumZoomLevels() - d)}, b = OpenLayers.Util.getImageLocation("zoombar.png
"), c = null; OpenLayers.Util.alphaHack()?(c = this.id + "_" + this.map.id, c = OpenLayers.Util.createAlphaImageDiv(c, a, {w:f.w, h:this.zoomStopHeight}, b, "absolute
", null, "crop
"), c.style.height =
578 f.h + "px
"):c = OpenLayers.Util.createDiv("OpenLayers_Control_PanZoomBar_Zoombar
" + this.map.id, a, f, b); c.style.cursor = "pointer
"; c.className = "olButton
"; this.zoombarDiv = c; this.div.appendChild(c); this.startTop = parseInt(c.style.top); this.div.appendChild(e); this.map.events.register("zoomend
", this, this.moveZoomBar); return a = a.add(0, this.zoomStopHeight * (this.map.getNumZoomLevels() - d))}, _removeZoomBar:function(){this.sliderEvents.un({touchstart:this.zoomBarDown, touchmove:this.zoomBarDrag, touchend:this.zoomBarUp,
579 mousedown:this.zoomBarDown, mousemove:this.zoomBarDrag, mouseup:this.zoomBarUp}); this.sliderEvents.destroy(); this.div.removeChild(this.zoombarDiv); this.zoombarDiv = null; this.div.removeChild(this.slider); this.slider = null; this.map.events.unregister("zoomend
", this, this.moveZoomBar)}, onButtonClick:function(a){OpenLayers.Control.PanZoom.prototype.onButtonClick.apply(this, arguments); if (a.buttonElement === this.zoombarDiv){var b = a.buttonXY.y / this.zoomStopHeight; if (this.forceFixedZoomLevel || !this.map.fractionalZoom)b =
580 Math.floor(b); b = this.map.getNumZoomLevels() - 1 - b; b = Math.min(Math.max(b, 0), this.map.getNumZoomLevels() - 1); this.map.zoomTo(b)}}, passEventToSlider:function(a){this.sliderEvents.handleBrowserEvent(a)}, zoomBarDown:function(a){if (OpenLayers.Event.isLeftClick(a) || OpenLayers.Event.isSingleTouch(a))this.map.events.on({touchmove:this.passEventToSlider, mousemove:this.passEventToSlider, mouseup:this.passEventToSlider, scope:this}), this.mouseDragStart = a.xy.clone(), this.zoomStart = a.xy.clone(), this.div.style.cursor =
581 "move
", this.zoombarDiv.offsets = null, OpenLayers.Event.stop(a)}, zoomBarDrag:function(a){if (null != this.mouseDragStart){var b = this.mouseDragStart.y - a.xy.y, c = OpenLayers.Util.pagePosition(this.zoombarDiv); 0 < a.clientY - c[1] && a.clientY - c[1] < parseInt(this.zoombarDiv.style.height) - 2 && (b = parseInt(this.slider.style.top) - b, this.slider.style.top = b + "px
", this.mouseDragStart = a.xy.clone()); this.deltaY = this.zoomStart.y - a.xy.y; OpenLayers.Event.stop(a)}}, zoomBarUp:function(a){if ((OpenLayers.Event.isLeftClick(a) || "touchend
" ===
582 a.type) && this.mouseDragStart){this.div.style.cursor = ""; this.map.events.un({touchmove:this.passEventToSlider, mouseup:this.passEventToSlider, mousemove:this.passEventToSlider, scope:this}); var b = this.map.zoom; !this.forceFixedZoomLevel && this.map.fractionalZoom?(b += this.deltaY / this.zoomStopHeight, b = Math.min(Math.max(b, 0), this.map.getNumZoomLevels() - 1)):(b += this.deltaY / this.zoomStopHeight, b = Math.max(Math.round(b), 0)); this.map.zoomTo(b); this.zoomStart = this.mouseDragStart = null; this.deltaY = 0; OpenLayers.Event.stop(a)}},
583 moveZoomBar:function(){var a = (this.map.getNumZoomLevels() - 1 - this.map.getZoom()) * this.zoomStopHeight + this.startTop + 1; this.slider.style.top = a + "px
"}, CLASS_NAME:"OpenLayers.Control.PanZoomBar
"}); OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {defaultVersion:"1.1.0
", CLASS_NAME:"OpenLayers.Format.WFSCapabilities
"}); OpenLayers.Format.WFSCapabilities.v1 = OpenLayers.Class(OpenLayers.Format.XML, {namespaces:{wfs:"http:
584 b){this.readChildNodes(
a,
b)}, FeatureTypeList:
function(
a,
b){
b.featureTypeList = {featureTypes:[]}; this.readChildNodes(
a,
b.featureTypeList)}, FeatureType:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.featureTypes.push(
c)}, Name:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
c =
c.split(
":"),
b.name =
c.pop(), 0 <
c.length && (
b.featureNS =
this.lookupNamespaceURI(
a,
c[0])))}, Title:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
b.title =
c)}, Abstract:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
b[
"abstract"] =
c)}}},
585 CLASS_NAME:
"OpenLayers.Format.WFSCapabilities.v1"});
OpenLayers.Format.WFSCapabilities.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.WFSCapabilities.v1, {regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, readers:{wfs:
OpenLayers.Util.applyDefaults({DefaultSRS:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
b.srs =
c)}},
OpenLayers.Format.WFSCapabilities.v1.prototype.readers.wfs), ows:
OpenLayers.
Format.
OWSCommon.
v1.
prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WFSCapabilities.v1_1_0"});
OpenLayers.Layer.Image =
OpenLayers.Class(
OpenLayers.Layer, {isBaseLayer:!0, url:null, extent:null, size:null, tile:null, aspectRatio:null, initialize:function(a, b, c, d, e){this.url = b; this.maxExtent = this.extent = c; this.size = d; OpenLayers.Layer.prototype.initialize.apply(this, [a, e]); this.aspectRatio = this.extent.getHeight() / this.size.h / (this.extent.getWidth() / this.size.w)}, destroy:
function(){this.tile && (this.removeTileMonitoringHooks(this.tile), this.tile.destroy(), this.tile = null); OpenLayers.Layer.prototype.destroy.apply(this,
586 arguments)},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.Image(this.name, this.url, this.extent, this.size, this.getOptions())); return a = OpenLayers.Layer.prototype.clone.apply(this, [a])}, setMap:
function(
a){null == this.options.maxResolution && (this.options.maxResolution = this.aspectRatio * this.extent.getWidth() / this.size.w); OpenLayers.Layer.prototype.setMap.apply(this, arguments)},
moveTo:
function(
a,
b,
c){OpenLayers.Layer.prototype.moveTo.apply(this, arguments); var d = null == this.tile; if (b || d){this.setTileSize();
587 var e = this.map.getLayerPxFromLonLat({lon:this.extent.left, lat:this.extent.top}); d?(this.tile = new OpenLayers.Tile.Image(this, e, this.extent, null, this.tileSize), this.addTileMonitoringHooks(this.tile)):(this.tile.size = this.tileSize.clone(), this.tile.position = e.clone()); this.tile.draw()}}, setTileSize:
function(){var
a = this.extent.getWidth() / this.map.getResolution(),
b = this.extent.getHeight() / this.map.getResolution(); this.tileSize =
new OpenLayers.Size(
a,
b)}, addTileMonitoringHooks:
function(
a){
a.onLoadStart =
588 function(){this.events.triggerEvent(
"loadstart")};
a.events.register(
"loadstart",
this,
a.onLoadStart);
a.onLoadEnd =
function(){this.events.triggerEvent(
"loadend")};
a.events.register(
"loadend",
this,
a.onLoadEnd);
a.events.register(
"unload",
this,
a.onLoadEnd)}, removeTileMonitoringHooks:
function(
a){
a.unload();
a.events.un({loadstart:
a.onLoadStart, loadend:
a.onLoadEnd, unload:
a.onLoadEnd, scope:
this})}, setUrl:
function(
a){this.url =
a; this.tile.draw()}, getURL:
function(
a){
return this.url}, CLASS_NAME:
"OpenLayers.Layer.Image"});
OpenLayers.Strategy =
OpenLayers.Class({layer:
null, options:
null, active:
null, autoActivate:!0, autoDestroy:!0, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.options =
a; this.active = !1}, destroy:
function(){this.deactivate(); this.options = this.layer =
null}, setLayer:
function(
a){this.layer =
a}, activate:
function(){
return this.active?!1:this.active = !0}, deactivate:
function(){
return this.active?(this.active = !1, !0):!1}, CLASS_NAME:
"OpenLayers.Strategy"});
OpenLayers.Strategy.Save =
OpenLayers.Class(
OpenLayers.Strategy, {events:null, auto:!1, timer:null, initialize:function(a){OpenLayers.Strategy.prototype.initialize.apply(this, [a]); this.events = new OpenLayers.Events(this)}, activate:
function(){var a = OpenLayers.Strategy.prototype.activate.call(this); if (a && this.auto)if (
"number" === typeof this.auto)this.timer = window.setInterval(OpenLayers.Function.bind(this.save, this), 1E3 * this.auto); else this.layer.events.on({featureadded:this.triggerSave, afterfeaturemodified:this.triggerSave,
589 scope:this});
return a}, deactivate:
function(){var
a =
OpenLayers.Strategy.prototype.deactivate.call(
this);
a && this.
auto && (
"number" === typeof this.
auto?window.clearInterval(this.timer):this.layer.events.un({featureadded:this.triggerSave, afterfeaturemodified:this.triggerSave, scope:this}));
return a}, triggerSave:
function(
a){var
b =
a.feature;
b.state !==
OpenLayers.State.INSERT &&
b.state !==
OpenLayers.State.UPDATE &&
b.state !==
OpenLayers.State.DELETE || this.save([
a.feature])}, save:
function(
a){
a || (
a = this.layer.features);
590 this.events.triggerEvent(
"start", {features:
a}); var
b = this.layer.projection,
c = this.layer.map.getProjectionObject();
if (!
c.equals(
b)){
for (var
d =
a.length,
e =
Array(
d),
f,
g,
h = 0;
h <
d; ++
h)
f =
a[
h],
g =
f.clone(),
g.fid =
f.fid,
g.state =
f.state,
f.url && (
g.url =
f.url),
g._original =
f,
g.geometry.transform(
c,
b),
e[
h] =
g;
a =
e}this.layer.protocol.commit(
a, {callback:this.onCommit, scope:
this})}, onCommit:
function(
a){var
b = {response:
a};
if (
a.success()){
for (var
c =
a.reqFeatures,
d,
e = [],
f =
a.insertIds || [],
g = 0,
h = 0,
k =
c.length;
h <
k; ++
h)
if (
d =
c[
h],
591 d =
d._original ||
d,
a =
d.state)
a ==
OpenLayers.State.DELETE?
e.push(
d):
a ==
OpenLayers.State.INSERT && (
d.fid =
f[
g], ++
g),
d.state =
null; 0 <
e.length && this.layer.destroyFeatures(
e); this.events.triggerEvent(
"success",
b)}
else this.events.triggerEvent(
"fail",
b)}, CLASS_NAME:
"OpenLayers.Strategy.Save"});
OpenLayers.Events.featureclick =
OpenLayers.Class({
cache:
null, map:
null, provides:[
"featureclick",
"nofeatureclick",
"featureover",
"featureout"], initialize:
function(
a){this.target =
a;
if (
a.object instanceof
OpenLayers.Map)this.setMap(
a.object);
else if (
a.object instanceof
OpenLayers.Layer.Vector)
a.object.map?this.setMap(
a.object.map):
a.
object.events.register(
"added",
this, function(
b){this.setMap(
a.object.map)});
else throw"Listeners for '" + this.provides.join(
"', '") +
"' events can only be registered for OpenLayers.Layer.Vector or OpenLayers.Map instances";
592 for (var
b = this.provides.length - 1; 0 <=
b; --
b)
a.extensions[
this.provides[
b]] = !0}, setMap:
function(
a){this.map =
a; this.
cache = {};
a.events.register(
"mousedown",
this, this.start, {extension:!0});
a.events.register(
"mouseup",
this, this.onClick, {extension:!0});
a.events.register(
"touchstart",
this, this.start, {extension:!0});
a.events.register(
"touchmove",
this, this.cancel, {extension:!0});
a.events.register(
"touchend",
this, this.onClick, {extension:!0});
a.events.register(
"mousemove",
this, this.onMousemove, {extension:!0})},
593 start:
function(
a){this.startEvt =
a}, cancel:
function(
a){
delete this.startEvt}, onClick:
function(
a){
if (this.startEvt && (
"touchend" ===
a.type ||
OpenLayers.Event.isLeftClick(
a))){
a = this.getFeatures(this.startEvt);
delete this.startEvt;
for (var
b,
c,
d = {},
e = 0,
f =
a.length;
e <
f && (
b =
a[
e],
c =
b.layer,
d[
c.id] = !0,
b = this.triggerEvent(
"featureclick", {feature:
b}), !1 !==
b); ++
e);
e = 0;
for (
f = this.map.layers.length;
e <
f; ++
e)
c = this.map.layers[
e],
c instanceof
OpenLayers.Layer.Vector && !
d[
c.id] && this.triggerEvent(
"nofeatureclick", {layer:
c})}},
594 onMousemove:
function(
a){
delete this.startEvt; var
b = this.getFeatures(
a),
c = {};
a = [];
for (var
d,
e = 0,
f =
b.length;
e <
f; ++
e)
d =
b[
e],
c[
d.id] =
d, this.
cache[
d.id] ||
a.push(
d); var
b = [],
g;
for (
g in this.
cache)
d = this.cache[
g],
d.layer &&
d.layer.map?
c[
d.id] ||
b.push(
d):
delete this.cache[
g];
e = 0;
for (
f =
a.length;
e <
f && (
d =
a[
e],
this.cache[
d.id] =
d,
g =
this.triggerEvent(
"featureover", {feature:d}), !1 !==
g); ++
e);
e = 0;
for (
f =
b.length;
e <
f && (
d =
b[
e],
delete this.cache[
d.id],
g =
this.triggerEvent(
"featureout", {feature:d}), !1 !==
g); ++
e); }, triggerEvent:
function(
a,
595 b){var
c =
b.feature?
b.feature.layer:
b.layer,
d = this.target.object;
if (
d instanceof
OpenLayers.Map ||
d ===
c)
return this.target.triggerEvent(
a,
b)}, getFeatures:
function(
a){var
b =
a.clientX,
c =
a.clientY,
d = [],
e = [],
f = [],
g,
h,
k,
l;
for (
l = this.map.layers.length - 1; 0 <=
l; --
l)
if (
g = this.map.layers[
l],
"none" !==
g.div.style.display)
if (
g.renderer instanceof
OpenLayers.Renderer.Elements){
if (
g instanceof
OpenLayers.Layer.Vector)
for (
h =
document.elementFromPoint(
b,
c);
h &&
h._featureId; )(
k =
g.getFeatureById(
h._featureId))?(
d.push(
k),
596 h.style.display =
"none",
e.push(
h),
h =
document.elementFromPoint(
b,
c)):
h = !1;
f.push(
g);
g.div.style.display =
"none"}
else g.renderer instanceof
OpenLayers.Renderer.Canvas && (
k =
g.renderer.getFeatureIdFromEvent(
a)) && (
d.push(
k),
f.push(
g));
l = 0;
for (
a =
e.length;
l <
a; ++
l)
e[
l].style.display =
"";
for (
l =
f.length - 1; 0 <=
l; --
l)
f[
l].div.style.display =
"block";
return d}, destroy:
function(){
for (var
a = this.provides.length - 1; 0 <=
a; --
a)
delete this.target.extensions[this.provides[
a]]; this.map.events.un({mousemove:this.onMousemove, mousedown:this.start,
597 mouseup:this.onClick, touchstart:this.start, touchmove:this.cancel, touchend:this.onClick, scope:
this});
delete this.cache;
delete this.map;
delete this.target}});
OpenLayers.Events.nofeatureclick =
OpenLayers.Events.featureclick;
OpenLayers.Events.featureover =
OpenLayers.Events.featureclick;
OpenLayers.Events.featureout =
OpenLayers.Events.featureclick;
OpenLayers.Format.GPX =
OpenLayers.Class(
OpenLayers.Format.XML, {defaultDesc:
"No description available", extractWaypoints:!0, extractTracks:!0, extractRoutes:!0, extractAttributes:!0, namespaces:{gpx:
"http://www.topografix.com/GPX/1/1", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, schemaLocation:
"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd", creator:
"OpenLayers", initialize:
function(
a){this.externalProjection = new OpenLayers.Projection(
"EPSG:4326"); OpenLayers.Format.XML.prototype.initialize.apply(this,
598 [a])}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); var b = []; if (this.extractTracks)for (var c = a.getElementsByTagName(
"trk"), d = 0, e = c.length; d < e; d++){var f = {}; this.extractAttributes && (f = this.parseAttributes(c[d])); for (var g = this.getElementsByTagNameNS(c[d], c[d].namespaceURI,
"trkseg"), h = 0, k = g.length; h < k; h++){var l = this.extractSegment(g[h],
"trkpt"); b.push(new OpenLayers.Feature.Vector(l, f))}}
if (this.extractRoutes)
for (
e =
a.getElementsByTagName(
"rte"),
c = 0,
d =
599 e.length;
c <
d;
c++)
f = {},
this.extractAttributes && (
f =
this.parseAttributes(
e[
c])),
g =
this.extractSegment(
e[
c],
"rtept"),
b.push(
new OpenLayers.Feature.Vector(
g,
f));
if (this.extractWaypoints)
for (
a =
a.getElementsByTagName(
"wpt"),
c = 0,
e =
a.length;
c <
e;
c++)
f = {},
this.extractAttributes && (
f =
this.parseAttributes(
a[
c])),
d =
new OpenLayers.Geometry.Point(
a[
c].getAttribute(
"lon"),
a[
c].getAttribute(
"lat")),
b.push(
new OpenLayers.Feature.Vector(
d,
f));
if (this.internalProjection && this.externalProjection)
for (
f = 0,
a =
b.length;
f <
a;
f++)
b[
f].geometry.transform(
this.externalProjection,
600 this.internalProjection);
return b}, extractSegment:
function(
a,
b){
for (var
c = this.getElementsByTagNameNS(
a,
a.namespaceURI,
b),
d = [],
e = 0,
f =
c.length;
e <
f;
e++)
d.push(
new OpenLayers.Geometry.Point(
c[
e].getAttribute(
"lon"),
c[
e].getAttribute(
"lat")));
return new OpenLayers.Geometry.LineString(
d)}, parseAttributes:
function(
a){var
b = {};
a =
a.firstChild;
for (var
c,
d;
a; )1 ==
a.nodeType &&
a.firstChild && (
c =
a.firstChild, 3 ==
c.nodeType || 4 ==
c.nodeType) && (
d =
a.prefix?
a.nodeName.split(
":")[1]:
a.nodeName,
"trkseg" !=
d &&
"rtept" !=
d &&
601 (
b[
d] =
c.nodeValue)),
a =
a.nextSibling;
return b}, write:
function(
a,
b){
a =
OpenLayers.Util.isArray(
a)?
a:[
a]; var
c = this.createElementNS(this.
namespaces.gpx,
"gpx");
c.setAttribute(
"version",
"1.1");
c.setAttribute(
"creator", this.creator); this.setAttributes(
c, {
"xsi:schemaLocation":this.schemaLocation});
b &&
"object" == typeof
b &&
c.appendChild(this.buildMetadataNode(
b));
for (var
d = 0,
e =
a.length;
d <
e;
d++)
c.appendChild(this.buildFeatureNode(
a[
d]));
return OpenLayers.Format.XML.prototype.write.apply(
this, [
c])}, buildMetadataNode:
function(
a){
for (var
b =
602 [
"name",
"desc",
"author"],
c = this.createElementNS(this.
namespaces.gpx,
"metadata"),
d = 0;
d <
b.length;
d++){var
e =
b[
d];
if (
a[
e]){var
f = this.createElementNS(this.
namespaces.gpx,
e);
f.appendChild(this.createTextNode(
a[
e]));
c.appendChild(
f)}}
return c}, buildFeatureNode:
function(
a){var
b =
a.geometry,
b =
b.clone(); this.internalProjection && this.externalProjection &&
b.transform(this.internalProjection, this.externalProjection);
if (
"OpenLayers.Geometry.Point" ==
b.CLASS_NAME){var
c = this.buildWptNode(
b); this.appendAttributesNode(
c,
603 a);
return c}
c = this.createElementNS(this.
namespaces.gpx,
"trk"); this.appendAttributesNode(
c,
a);
a = this.buildTrkSegNode(
b);
a =
OpenLayers.Util.isArray(
a)?
a:[
a];
for (var
b = 0,
d =
a.length;
b <
d;
b++)
c.appendChild(
a[
b]);
return c}, buildTrkSegNode:
function(
a){var
b,
c,
d,
e;
if (
"OpenLayers.Geometry.LineString" ==
a.CLASS_NAME ||
"OpenLayers.Geometry.LinearRing" ==
a.CLASS_NAME){
b = this.createElementNS(this.
namespaces.gpx,
"trkseg");
c = 0;
for (
d =
a.components.length;
c <
d;
c++)
e =
a.components[
c],
b.appendChild(this.buildTrkPtNode(
e));
604 return b}
b = [];
c = 0;
for (
d =
a.components.length;
c <
d;
c++)
b.push(this.buildTrkSegNode(
a.components[
c]));
return b}, buildTrkPtNode:
function(
a){var
b = this.createElementNS(this.
namespaces.gpx,
"trkpt");
b.setAttribute(
"lon",
a.x);
b.setAttribute(
"lat",
a.y);
return b}, buildWptNode:
function(
a){var
b = this.createElementNS(this.
namespaces.gpx,
"wpt");
b.setAttribute(
"lon",
a.x);
b.setAttribute(
"lat",
a.y);
return b}, appendAttributesNode:
function(
a,
b){var
c = this.createElementNS(this.
namespaces.gpx,
"name");
c.appendChild(this.createTextNode(
b.attributes.name ||
605 b.id));
a.appendChild(
c);
c = this.createElementNS(this.
namespaces.gpx,
"desc");
c.appendChild(this.createTextNode(
b.attributes.description ||
this.defaultDesc));
a.appendChild(
c)}, CLASS_NAME:
"OpenLayers.Format.GPX"});
OpenLayers.Format.WMSDescribeLayer =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.1.1", CLASS_NAME:
"OpenLayers.Format.WMSDescribeLayer"});
OpenLayers.Format.WMSDescribeLayer.v1_1_1 =
OpenLayers.Class(
OpenLayers.Format.WMSDescribeLayer, {initialize:function(a){OpenLayers.Format.WMSDescribeLayer.prototype.initialize.apply(this, [a])}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); for (var b = a.documentElement.childNodes, c = {layerDescriptions:[]},
d,
e,
f = 0;
f <
b.length; ++
f)
if (
d =
b[
f],
e =
d.nodeName,
"LayerDescription" ==
e){
e =
d.getAttribute(
"name"); var
g =
"",
h =
"",
k =
"";
d.getAttribute(
"owsType")?(
g =
d.getAttribute(
"owsType"),
606 h =
d.getAttribute(
"owsURL")):
"" !=
d.getAttribute(
"wfs")?(
g =
"WFS",
h =
d.getAttribute(
"wfs")):
"" !=
d.getAttribute(
"wcs") && (
g =
"WCS",
h =
d.getAttribute(
"wcs"));
d =
d.getElementsByTagName(
"Query"); 0 <
d.length && ((
k =
d[0].getAttribute(
"typeName")) || (
k =
d[0].getAttribute(
"typename")));
d = {layerName:
e, owsType:
g, owsURL:
h, typeName:
k};
c.layerDescriptions.push(
d);
c.length =
c.layerDescriptions.length;
c[
c.length - 1] =
d}
else if (
"ServiceException" ==
e)
return{error:(
new OpenLayers.Format.OGCExceptionReport).read(
a)};
return c}, CLASS_NAME:
"OpenLayers.Format.WMSDescribeLayer.v1_1_1"});
607 OpenLayers.Format.WMSDescribeLayer.v1_1_0 =
OpenLayers.Format.WMSDescribeLayer.v1_1_1;
OpenLayers.Layer.XYZ =
OpenLayers.Class(
OpenLayers.Layer.Grid, {isBaseLayer:!0, sphericalMercator:!1, zoomOffset:0, serverResolutions:null, initialize:function(
a,
b,
c){
if (
c &&
c.sphericalMercator ||
this.sphericalMercator)
c =
OpenLayers.Util.extend({projection:
"EPSG:900913", numZoomLevels:19},
c);
OpenLayers.Layer.Grid.prototype.initialize.apply(
this, [
a ||
this.name,
b ||
this.url, {},
c])},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.XYZ(this.name, this.url, this.getOptions()));
return a =
OpenLayers.Layer.Grid.prototype.clone.apply(
this,
608 [
a])}, getURL:
function(
a){
a = this.getXYZ(
a); var
b = this.url;
OpenLayers.Util.isArray(
b) && (
b = this.selectUrl(
"" +
a.x +
a.y +
a.z,
b));
return OpenLayers.String.format(
b,
a)}, getXYZ:
function(
a){var
b = this.getServerResolution(),
c =
Math.round((
a.left -
this.maxExtent.left) / (
b *
this.tileSize.w));
a =
Math.round((this.maxExtent.top -
a.top) / (
b *
this.tileSize.h));
b = this.getServerZoom();
if (this.wrapDateLine)var
d =
Math.pow(2,
b),
c = (
c %
d +
d) %
d;
return{
x:
c,
y:
a,
z:
b}}, setMap:
function(
a){
OpenLayers.Layer.Grid.prototype.setMap.apply(
this,
609 arguments); this.tileOrigin || (this.tileOrigin =
new OpenLayers.LonLat(this.maxExtent.left,
this.maxExtent.bottom))}, CLASS_NAME:
"OpenLayers.Layer.XYZ"});
OpenLayers.Layer.OSM =
OpenLayers.Class(
OpenLayers.Layer.XYZ, {name:
"OpenStreetMap", url:[
"http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
"http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
"http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"], attribution:
"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors", sphericalMercator:!0, wrapDateLine:!0, tileOptions:null, initialize:function(
a,
b,
c){
OpenLayers.Layer.XYZ.prototype.initialize.apply(
this, arguments); this.tileOptions =
610 OpenLayers.Util.extend({crossOriginKeyword:
"anonymous"}, this.options && this.options.tileOptions)},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.OSM(this.name, this.url, this.getOptions()));
return a =
OpenLayers.Layer.XYZ.prototype.clone.apply(
this, [
a])}, CLASS_NAME:
"OpenLayers.Layer.OSM"});
OpenLayers.Renderer =
OpenLayers.Class({container:
null,
root:
null, extent:
null, locked:!1, size:
null, resolution:
null, map:
null, featureDx:0, initialize:
function(
a,
b){this.container =
OpenLayers.Util.getElement(
a);
OpenLayers.Util.extend(
this,
b)}, destroy:
function(){this.map = this.resolution = this.size = this.extent = this.container =
null}, supported:
function(){
return!1}, setExtent:
function(
a,
b){this.extent =
a.clone();
if (this.map.baseLayer &&
this.map.baseLayer.wrapDateLine){var
c =
a.getWidth() / this.map.getExtent().getWidth();
611 a =
a.scale(1 /
c); this.extent =
a.wrapDateLine(this.map.getMaxExtent()).scale(
c)}
b && (this.resolution =
null);
return!0}, setSize:
function(
a){this.size =
a.clone(); this.resolution =
null}, getResolution:
function(){
return this.resolution = this.resolution || this.map.getResolution()}, drawFeature:
function(
a,
b){
null ==
b && (
b =
a.style);
if (
a.geometry){var
c =
a.geometry.getBounds();
if (
c){var
d; this.map.baseLayer && this.map.baseLayer.wrapDateLine && (
d = this.map.getMaxExtent());
c.intersectsBounds(this.extent, {worldBounds:
d})?this.calculateFeatureDx(
c,
612 d):
b = {display:
"none"};
c = this.drawGeometry(
a.geometry,
b,
a.id);
if (
"none" !=
b.display &&
b.label && !1 !==
c){
d =
a.geometry.getCentroid();
if (
b.labelXOffset ||
b.labelYOffset){var
e = isNaN(
b.labelXOffset)?0:
b.labelXOffset,
f = isNaN(
b.labelYOffset)?0:
b.labelYOffset,
g = this.getResolution();
d.move(
e *
g,
f *
g)}this.drawText(
a.id,
b,
d)}
else this.removeText(
a.id);
return c}}}, calculateFeatureDx:
function(
a,
b){this.featureDx = 0;
if (
b){var
c =
b.getWidth(); this.featureDx =
Math.round(((
a.left +
a.right) / 2 - (
this.extent.left +
this.extent.right) /
613 2) /
c) *
c}}, drawGeometry:
function(
a,
b,
c){}, drawText:
function(
a,
b,
c){}, removeText:
function(
a){}, clear:
function(){}, getFeatureIdFromEvent:
function(
a){}, eraseFeatures:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
b = 0,
c =
a.length;
b <
c; ++
b){var
d =
a[
b]; this.eraseGeometry(
d.geometry,
d.id); this.removeText(
d.id)}}, eraseGeometry:
function(
a,
b){}, moveRoot:
function(
a){}, getRenderLayerId:
function(){
return this.container.id}, applyDefaultSymbolizer:
function(
a){var
b =
OpenLayers.Util.extend({},
OpenLayers.Renderer.defaultSymbolizer);
614 !1 ===
a.stroke && (
delete b.strokeWidth,
delete b.strokeColor); !1 ===
a.fill &&
delete b.fillColor;
OpenLayers.Util.extend(
b,
a);
return b}, CLASS_NAME:
"OpenLayers.Renderer"});
OpenLayers.Renderer.defaultSymbolizer = {fillColor:
"#000000", strokeColor:
"#000000", strokeWidth:2, fillOpacity:1, strokeOpacity:1, pointRadius:0, labelAlign:
"cm"};
615 OpenLayers.Renderer.symbol = {star:[350, 75, 379, 161, 469, 161, 397, 215, 423, 301, 350, 250, 277, 301, 303, 215, 231, 161, 321, 161, 350, 75], cross:[4, 0, 6, 0, 6, 4, 10, 4, 10, 6, 6, 6, 6, 10, 4, 10, 4, 6, 0, 6, 0, 4, 4, 4, 4, 0],
x:[0, 0, 25, 0, 50, 35, 75, 0, 100, 0, 65, 50, 100, 100, 75, 100, 50, 65, 25, 100, 0, 100, 35, 50, 0, 0], square:[0, 0, 0, 1, 1, 1, 1, 0, 0, 0], triangle:[0, 10, 10, 10, 5, 0, 0, 10]};
OpenLayers.Renderer.Canvas =
OpenLayers.Class(
OpenLayers.Renderer, {hitDetection:!0, hitOverflow:0, canvas:null, features:null, pendingRedraw:!1, cachedSymbolBounds:{}, initialize:
function(
a,
b){
OpenLayers.Renderer.prototype.initialize.apply(
this, arguments); this.
root =
document.createElement(
"canvas"); this.container.appendChild(this.
root); this.canvas = this.
root.getContext(
"2d"); this.features = {}; this.hitDetection && (this.hitCanvas =
document.createElement(
"canvas"), this.hitContext = this.hitCanvas.getContext(
"2d"))},
616 setExtent:
function(){
OpenLayers.Renderer.prototype.setExtent.apply(
this, arguments);
return!1}, eraseGeometry:
function(
a,
b){this.eraseFeatures(this.features[
b][0])}, supported:
function(){
return OpenLayers.CANVAS_SUPPORTED}, setSize:
function(
a){this.size =
a.clone(); var
b = this.
root;
b.style.width =
a.w +
"px";
b.style.height =
a.h +
"px";
b.width =
a.w;
b.height =
a.h; this.resolution =
null; this.hitDetection && (
b = this.hitCanvas,
b.style.width =
a.w +
"px",
b.style.height =
a.h +
"px",
b.width =
a.w,
b.height =
a.h)}, drawFeature:
function(
a,
617 b){var
c;
if (
a.geometry){
b = this.applyDefaultSymbolizer(
b ||
a.style);
c =
a.geometry.getBounds(); var
d; this.map.baseLayer && this.map.baseLayer.wrapDateLine && (
d = this.map.getMaxExtent());
d =
c &&
c.intersectsBounds(this.extent, {worldBounds:
d}); (
c =
"none" !==
b.display && !!
c &&
d)?this.features[
a.id] = [
a,
b]:delete
this.features[
a.id]; this.pendingRedraw = !0}this.pendingRedraw && !this.locked && (this.redraw(), this.pendingRedraw = !1);
return c}, drawGeometry:
function(
a,
b,
c){var
d =
a.CLASS_NAME;
if (
"OpenLayers.Geometry.Collection" ==
618 d ||
"OpenLayers.Geometry.MultiPoint" ==
d ||
"OpenLayers.Geometry.MultiLineString" ==
d ||
"OpenLayers.Geometry.MultiPolygon" ==
d)
for (
d = 0;
d <
a.components.length;
d++)this.drawGeometry(
a.components[
d],
b,
c);
else switch (
a.CLASS_NAME){
case "OpenLayers.Geometry.Point":this.drawPoint(
a,
b,
c);
break;
case "OpenLayers.Geometry.LineString":this.drawLineString(
a,
b,
c);
break;
case "OpenLayers.Geometry.LinearRing":this.drawLinearRing(
a,
b,
c);
break;
case "OpenLayers.Geometry.Polygon":this.drawPolygon(
a,
b,
c)}}, drawExternalGraphic:
function(
a,
619 b,
c){var
d =
new Image,
e =
b.title ||
b.graphicTitle;
e && (
d.title =
e); var
f =
b.graphicWidth ||
b.graphicHeight,
g =
b.graphicHeight ||
b.graphicWidth,
f =
f?
f:2 *
b.pointRadius,
g =
g?
g:2 *
b.pointRadius,
h =
void 0 !=
b.graphicXOffset?
b.graphicXOffset: - (0.5 *
f),
k =
void 0 !=
b.graphicYOffset?
b.graphicYOffset: - (0.5 *
g),
l =
b.graphicOpacity ||
b.fillOpacity;
d.onload =
OpenLayers.Function.bind(
function(){
if (this.features[
c]){var
b = this.getLocalXY(
a),
e =
b[0],
b =
b[1];
if (!isNaN(
e) && !isNaN(
b)){var
e =
e +
h | 0,
b =
b +
k | 0,
p = this.canvas;
p.globalAlpha =
l; var
q =
620 OpenLayers.Renderer.Canvas.drawImageScaleFactor || (
OpenLayers.Renderer.Canvas.drawImageScaleFactor = /android 2.1/.test(navigator.userAgent.toLowerCase())?320 / window.screen.width:1);
p.drawImage(
d,
e *
q,
b *
q,
f *
q,
g *
q); this.hitDetection && (this.setHitContextStyle(
"fill",
c), this.hitContext.fillRect(
e,
b,
f,
g))}}},
this);
d.src =
b.externalGraphic}, drawNamedSymbol:
function(
a,
b,
c){var
d,
e,
f,
g;
f =
Math.PI / 180; var
h =
OpenLayers.Renderer.symbol[
b.graphicName];
if (!
h)
throw Error(
b.graphicName +
" is not a valid symbol name");
621 if (!(!
h.length || 2 >
h.length || (
a =
this.getLocalXY(
a),
e =
a[0],
g =
a[1], isNaN(
e) || isNaN(
g)))){this.canvas.lineCap =
"round"; this.canvas.lineJoin =
"round"; this.hitDetection && (this.hitContext.lineCap =
"round", this.hitContext.lineJoin =
"round");
if (
b.graphicName in
this.cachedSymbolBounds)
d = this.cachedSymbolBounds[
b.graphicName];
else{
d =
new OpenLayers.Bounds;
for (
a = 0;
a <
h.length;
a += 2)
d.extend(
new OpenLayers.LonLat(
h[
a],
h[
a + 1])); this.cachedSymbolBounds[
b.graphicName] =
d}this.canvas.save(); this.hitDetection && this.hitContext.save();
622 this.canvas.translate(
e,
g); this.hitDetection && this.hitContext.translate(
e,
g);
a =
f *
b.rotation; isNaN(
a) || (this.canvas.rotate(
a), this.hitDetection && this.hitContext.rotate(
a));
f = 2 *
b.pointRadius /
Math.max(
d.getWidth(),
d.getHeight()); this.canvas.scale(
f,
f); this.hitDetection && this.hitContext.scale(
f,
f);
a =
d.getCenterLonLat().lon;
d =
d.getCenterLonLat().lat; this.canvas.translate( -
a, -
d); this.hitDetection && this.hitContext.translate( -
a, -
d);
g =
b.strokeWidth;
b.strokeWidth =
g /
f;
if (!1 !==
b.fill){this.setCanvasStyle(
"fill",
623 b); this.canvas.beginPath();
for (
a = 0;
a <
h.length;
a += 2)
d =
h[
a],
e =
h[
a + 1], 0 ==
a && this.canvas.moveTo(
d,
e), this.canvas.lineTo(
d,
e); this.canvas.closePath(); this.canvas.fill();
if (this.hitDetection){this.setHitContextStyle(
"fill",
c,
b); this.hitContext.beginPath();
for (
a = 0;
a <
h.length;
a += 2)
d =
h[
a],
e =
h[
a + 1], 0 ==
a && this.canvas.moveTo(
d,
e), this.hitContext.lineTo(
d,
e); this.hitContext.closePath(); this.hitContext.fill()}}
if (!1 !==
b.stroke){this.setCanvasStyle(
"stroke",
b); this.canvas.beginPath();
for (
a = 0;
a <
h.length;
a += 2)
d =
h[
a],
624 e =
h[
a + 1], 0 ==
a && this.canvas.moveTo(
d,
e), this.canvas.lineTo(
d,
e); this.canvas.closePath(); this.canvas.stroke();
if (this.hitDetection){this.setHitContextStyle(
"stroke",
c,
b,
f); this.hitContext.beginPath();
for (
a = 0;
a <
h.length;
a += 2)
d =
h[
a],
e =
h[
a + 1], 0 ==
a && this.hitContext.moveTo(
d,
e), this.hitContext.lineTo(
d,
e); this.hitContext.closePath(); this.hitContext.stroke()}}
b.strokeWidth =
g; this.canvas.restore(); this.hitDetection && this.hitContext.restore(); this.setCanvasStyle(
"reset")}}, setCanvasStyle:
function(
a,
b){
"fill" ===
625 a?(this.canvas.globalAlpha =
b.fillOpacity, this.canvas.fillStyle =
b.fillColor):
"stroke" ===
a?(
this.canvas.globalAlpha =
b.strokeOpacity,
this.canvas.strokeStyle =
b.strokeColor,
this.canvas.lineWidth =
b.strokeWidth):(
this.canvas.globalAlpha = 0,
this.canvas.lineWidth = 1)}, featureIdToHex:function(
a){
a =
Number(
a.split(
"_").pop()) + 1; 16777216 <=
a && (this.hitOverflow =
a - 16777215,
a =
a % 16777216 + 1);
a =
"000000" +
a.toString(16); var
b =
a.length;
return a =
"#" +
a.substring(
b - 6,
b)}, setHitContextStyle:
function(
a,
b,
c,
d){
b = this.featureIdToHex(
b);
626 "fill" ==
a?(this.hitContext.globalAlpha = 1, this.hitContext.fillStyle =
b):
"stroke" ==
a?(
this.hitContext.globalAlpha = 1,
this.hitContext.strokeStyle =
b,
"undefined" === typeof
d?
this.hitContext.lineWidth =
c.strokeWidth + 2:isNaN(
d) || (
this.hitContext.lineWidth =
c.strokeWidth + 2 /
d)):(
this.hitContext.globalAlpha = 0,
this.hitContext.lineWidth = 1)}, drawPoint:function(
a,
b,
c){
if (!1 !==
b.graphic)
if (
b.externalGraphic)
this.drawExternalGraphic(
a,
b,
c);
else if (
b.graphicName &&
"circle" !=
b.graphicName)
this.drawNamedSymbol(
a,
b,
c);
else{var d =
627 this.getLocalXY(a); a = d[0]; d = d[1]; if (!isNaN(a) && !isNaN(d)){var e = 2 * Math.PI, f = b.pointRadius; !1 !== b.fill && (this.setCanvasStyle(
"fill", b), this.canvas.beginPath(), this.canvas.arc(a, d, f, 0, e, !0), this.canvas.fill(), this.hitDetection && (this.setHitContextStyle(
"fill", c, b), this.hitContext.beginPath(), this.hitContext.arc(a, d, f, 0, e, !0), this.hitContext.fill())); !1 !== b.stroke && (this.setCanvasStyle(
"stroke", b), this.canvas.beginPath(), this.canvas.arc(a, d, f, 0, e, !0), this.canvas.stroke(), this.hitDetection && (this.setHitContextStyle(
"stroke",
628 c, b), this.hitContext.beginPath(), this.hitContext.arc(a, d, f, 0, e, !0), this.hitContext.stroke()), this.setCanvasStyle(
"reset"))}}}, drawLineString:
function(
a,
b,
c){
b =
OpenLayers.Util.applyDefaults({fill:!1},
b); this.drawLinearRing(
a,
b,
c)}, drawLinearRing:
function(
a,
b,
c){!1 !==
b.fill && (this.setCanvasStyle(
"fill",
b), this.renderPath(this.canvas,
a,
b,
c,
"fill"), this.hitDetection && (this.setHitContextStyle(
"fill",
c,
b), this.renderPath(this.hitContext,
a,
b,
c,
"fill"))); !1 !==
b.stroke && (this.setCanvasStyle(
"stroke",
b), this.renderPath(this.canvas,
629 a,
b,
c,
"stroke"), this.hitDetection && (this.setHitContextStyle(
"stroke",
c,
b), this.renderPath(this.hitContext,
a,
b,
c,
"stroke"))); this.setCanvasStyle(
"reset")}, renderPath:
function(
a,
b,
c,
d,
e){
b =
b.components;
c =
b.length;
a.beginPath();
d = this.getLocalXY(
b[0]); var
f =
d[1];
if (!isNaN(
d[0]) && !isNaN(
f)){
a.moveTo(
d[0],
d[1]);
for (
d = 1;
d <
c; ++
d)
f = this.getLocalXY(
b[
d]),
a.lineTo(
f[0],
f[1]);
"fill" ===
e?
a.fill():
a.stroke()}}, drawPolygon:
function(
a,
b,
c){
a =
a.components; var
d =
a.length; this.drawLinearRing(
a[0],
b,
c);
for (var
e = 1;
e <
630 d; ++
e)this.canvas.globalCompositeOperation =
"destination-out",
this.hitDetection && (
this.hitContext.globalCompositeOperation =
"destination-out"), this.drawLinearRing(
a[
e],
OpenLayers.Util.applyDefaults({stroke:!1, fillOpacity:1},
b),
c), this.canvas.globalCompositeOperation =
"source-over", this.hitDetection && (this.hitContext.globalCompositeOperation =
"source-over"), this.drawLinearRing(
a[
e],
OpenLayers.Util.applyDefaults({fill:!1},
b),
c)}, drawText:
function(
a,
b){var
c = this.getLocalXY(
a); this.setCanvasStyle(
"reset");
631 this.canvas.fillStyle =
b.fontColor; this.canvas.globalAlpha =
b.fontOpacity || 1; var
d = [
b.fontStyle?
b.fontStyle:
"normal",
"normal",
b.fontWeight?
b.fontWeight:
"normal",
b.fontSize?
b.fontSize:
"1em",
b.fontFamily?
b.fontFamily:
"sans-serif"].join(
" "),
e =
b.label.split(
"\n"),
f =
e.length;
if (this.canvas.fillText){this.canvas.font =
d; this.canvas.textAlign =
OpenLayers.Renderer.Canvas.LABEL_ALIGN[
b.labelAlign[0]] ||
"center"; this.canvas.textBaseline =
OpenLayers.Renderer.Canvas.LABEL_ALIGN[
b.labelAlign[1]] ||
"middle"; var
g =
OpenLayers.Renderer.Canvas.LABEL_FACTOR[
b.labelAlign[1]];
632 null ==
g && (
g = - 0.5);
d = this.canvas.measureText(
"Mg").height || this.canvas.measureText(
"xx").width;
c[1] +=
d *
g * (
f - 1);
for (
g = 0;
g <
f;
g++)
b.labelOutlineWidth && (
this.canvas.save(),
this.canvas.globalAlpha =
b.labelOutlineOpacity ||
b.fontOpacity || 1,
this.canvas.strokeStyle =
b.labelOutlineColor,
this.canvas.lineWidth =
b.labelOutlineWidth,
this.canvas.strokeText(
e[
g],
c[0],
c[1] +
d *
g + 1),
this.canvas.restore()), this.canvas.fillText(
e[
g],
c[0],
c[1] +
d *
g)}
else if (this.canvas.mozDrawText){this.canvas.mozTextStyle =
d; var
h =
OpenLayers.Renderer.Canvas.LABEL_FACTOR[
b.labelAlign[0]];
633 null ==
h && (
h = - 0.5);
g =
OpenLayers.Renderer.Canvas.LABEL_FACTOR[
b.labelAlign[1]];
null ==
g && (
g = - 0.5);
d = this.canvas.mozMeasureText(
"xx");
c[1] +=
d * (1 +
g *
f);
for (
g = 0;
g <
f;
g++){var
k =
c[0] +
h * this.canvas.mozMeasureText(
e[
g]),
l =
c[1] +
g *
d; this.canvas.translate(
k,
l); this.canvas.mozDrawText(
e[
g]); this.canvas.translate( -
k, -
l)}}this.setCanvasStyle(
"reset")}, getLocalXY:
function(
a){var
b = this.getResolution(),
c = this.extent;
return[(
a.x - this.featureDx) /
b + -
c.left /
b,
c.top /
b -
a.y /
b]}, clear:
function(){var
a = this.
root.height,
b = this.
root.width;
634 this.canvas.clearRect(0, 0,
b,
a); this.features = {}; this.hitDetection && this.hitContext.clearRect(0, 0,
b,
a)}, getFeatureIdFromEvent:
function(
a){var
b;
if (this.hitDetection &&
"none" !== this.
root.style.display && !
this.map.dragging && (
a =
a.xy,
a =
this.hitContext.getImageData(
a.x | 0,
a.y | 0, 1, 1).data, 255 ===
a[3] && (
a =
a[2] + 256 * (
a[1] + 256 *
a[0])))){
a =
"OpenLayers_Feature_Vector_" + (
a - 1 + this.hitOverflow);
try{
b = this.features[
a][0]}
catch (
c){}}
return b}, eraseFeatures:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
b = 0;
b <
a.length; ++
b)
delete this.features[
a[
b].
id];
635 this.redraw()}, redraw:
function(){
if (!this.locked){var
a = this.
root.height,
b = this.
root.width; this.canvas.clearRect(0, 0,
b,
a); this.hitDetection && this.hitContext.clearRect(0, 0,
b,
a); var
a = [],
c,
d,
e = this.map.baseLayer && this.map.baseLayer.wrapDateLine && this.map.getMaxExtent(),
f;
for (
f in this.features)this.features.hasOwnProperty(
f) && (
b = this.features[
f][0],
c =
b.geometry, this.calculateFeatureDx(
c.getBounds(),
e),
d = this.features[
f][1], this.drawGeometry(
c,
d,
b.id),
d.label &&
a.push([
b,
d]));
b = 0;
for (
c =
a.length;
b <
c; ++
b)
f =
636 a[
b], this.drawText(
f[0].geometry.getCentroid(),
f[1])}}, CLASS_NAME:
"OpenLayers.Renderer.Canvas"});
OpenLayers.Renderer.Canvas.LABEL_ALIGN = {
l:
"left",
r:
"right",
t:
"top",
b:
"bottom"};
OpenLayers.Renderer.Canvas.LABEL_FACTOR = {
l:0,
r: - 1,
t:0,
b: - 1};
OpenLayers.Renderer.Canvas.drawImageScaleFactor =
null;
OpenLayers.Format.OSM =
OpenLayers.Class(
OpenLayers.Format.XML, {checkTags:!1, interestingTagsExclude:null, areaTags:null, initialize:function(
a){var
b = {interestingTagsExclude:
"source source_ref source:ref history attribution created_by".split(
" "), areaTags:
"area building leisure tourism ruins historic landuse military natural sport".split(
" ")},
b =
OpenLayers.Util.extend(
b,
a),
c = {};
for (
a = 0;
a <
b.interestingTagsExclude.length;
a++)
c[
b.interestingTagsExclude[
a]] = !0;
b.interestingTagsExclude =
c;
c = {};
for (
a = 0;
a <
b.areaTags.length;
a++)
c[
b.areaTags[
a]] =
637 !0;
b.areaTags =
c; this.externalProjection =
new OpenLayers.Projection(
"EPSG:4326");
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
b])}, read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a])); var
b = this.getNodes(
a),
c = this.getWays(
a);
a =
Array(
c.length);
for (var
d = 0;
d <
c.length;
d++){
for (var
e =
Array(
c[
d].nodes.length),
f =
this.isWayArea(
c[
d])?1:0,
g = 0;
g <
c[
d].nodes.length;
g++){var
h =
b[
c[
d].nodes[
g]],
k =
new OpenLayers.Geometry.Point(
h.lon,
h.lat);
k.osm_id = parseInt(
c[
d].nodes[
g]);
638 e[
g] =
k;
h.used = !0}
h =
null;
h =
f?
new OpenLayers.Geometry.Polygon(
new OpenLayers.Geometry.LinearRing(
e)):
new OpenLayers.Geometry.LineString(
e); this.internalProjection && this.externalProjection &&
h.transform(this.externalProjection, this.internalProjection);
e =
new OpenLayers.Feature.Vector(
h,
c[
d].tags);
e.osm_id = parseInt(
c[
d].
id);
e.fid =
"way." +
e.osm_id;
a[
d] =
e}
for (var
l in
b){
h =
b[
l];
if (!
h.used ||
this.checkTags){
c =
null;
if (this.checkTags){
c = this.getTags(
h.node, !0);
if (
h.used && !
c[1])
continue;
c =
c[0]}
else c = this.getTags(
h.node);
639 e =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(
h.lon,
h.lat),
c); this.internalProjection && this.externalProjection &&
e.geometry.transform(this.externalProjection, this.internalProjection);
e.osm_id = parseInt(
l);
e.fid =
"node." +
e.osm_id;
a.push(
e)}
h.node =
null}
return a}, getNodes:
function(
a){
a =
a.getElementsByTagName(
"node");
for (var
b = {},
c = 0;
c <
a.length;
c++){var
d =
a[
c],
e =
d.getAttribute(
"id");
b[
e] = {lat:
d.getAttribute(
"lat"), lon:
d.getAttribute(
"lon"), node:
d}}
return b}, getWays:
function(
a){
a =
a.getElementsByTagName(
"way");
640 for (var
b = [],
c = 0;
c <
a.length;
c++){var
d =
a[
c],
e = {id:
d.getAttribute(
"id")};
e.tags = this.getTags(
d);
d =
d.getElementsByTagName(
"nd");
e.nodes =
Array(
d.length);
for (var
f = 0;
f <
d.length;
f++)
e.nodes[
f] =
d[
f].getAttribute(
"ref");
b.push(
e)}
return b}, getTags:
function(
a,
b){
for (var
c =
a.getElementsByTagName(
"tag"),
d = {},
e = !1,
f = 0;
f <
c.length;
f++){var
g =
c[
f].getAttribute(
"k");
d[
g] =
c[
f].getAttribute(
"v");
b && (this.interestingTagsExclude[
g] || (
e = !0))}
return b?[
d,
e]:
d}, isWayArea:
function(
a){var
b = !1,
c = !1;
a.nodes[0] ==
a.nodes[
a.nodes.length -
6411] && (
b = !0);
if (this.checkTags)
for (var
d in
a.tags)
if (this.areaTags[
d]){
c = !0;
break}
return b && (this.checkTags?
c:!0)}, write:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]); this.osm_id = 1; this.created_nodes = {}; var
b = this.createElementNS(
null,
"osm");
b.setAttribute(
"version",
"0.5");
b.setAttribute(
"generator",
"OpenLayers " +
OpenLayers.VERSION_NUMBER);
for (var
c =
a.length - 1; 0 <=
c;
c--)
for (var
d = this.createFeatureNodes(
a[
c]),
e = 0;
e <
d.length;
e++)
b.appendChild(
d[
e]);
return OpenLayers.Format.XML.prototype.write.apply(
this,
642 [
b])}, createFeatureNodes:
function(
a){var
b = [],
c =
a.geometry.CLASS_NAME,
c =
c.substring(
c.lastIndexOf(
".") + 1),
c =
c.toLowerCase(); (
c = this.createXML[
c]) && (
b =
c.apply(
this, [
a]));
return b}, createXML:{point:
function(
a){var
b =
null,
c =
a.geometry?
a.geometry:
a; this.internalProjection && this.externalProjection && (
c =
c.clone(),
c.transform(
this.internalProjection,
this.externalProjection)); var
d = !1;
a.osm_id?(
b =
a.osm_id, this.created_nodes[
b] && (
d = !0)):(
b = -
this.osm_id,
this.osm_id++); var
e =
d?this.created_nodes[
b]:this.createElementNS(
null,
643 "node"); this.created_nodes[
b] =
e;
e.setAttribute(
"id",
b);
e.setAttribute(
"lon",
c.x);
e.setAttribute(
"lat",
c.y);
a.attributes && this.serializeTags(
a,
e); this.setState(
a,
e);
return d?[]:[
e]}, linestring:
function(
a){var
b,
c = [],
d =
a.geometry;
a.osm_id?
b =
a.osm_id:(
b = - this.osm_id, this.osm_id++); var
e = this.createElementNS(
null,
"way");
e.setAttribute(
"id",
b);
for (
b = 0;
b <
d.components.length;
b++){var
f = this.createXML.point.apply(
this, [
d.components[
b]]);
if (
f.length){var
f =
f[0],
g =
f.getAttribute(
"id");
c.push(
f)}
else g =
d.components[
b].osm_id,
644 f = this.created_nodes[
g]; this.setState(
a,
f);
f = this.createElementNS(
null,
"nd");
f.setAttribute(
"ref",
g);
e.appendChild(
f)}this.serializeTags(
a,
e);
c.push(
e);
return c}, polygon:
function(
a){var
b =
OpenLayers.Util.extend({
area:
"yes"},
a.attributes),
b =
new OpenLayers.Feature.Vector(
a.geometry.components[0],
b);
b.osm_id =
a.osm_id;
return this.createXML.linestring.apply(
this, [
b])}}, serializeTags:
function(
a,
b){
for (var
c in
a.attributes){var
d = this.createElementNS(
null,
"tag");
d.setAttribute(
"k",
c);
d.setAttribute(
"v",
645 a.attributes[
c]);
b.appendChild(
d)}}, setState:
function(
a,
b){
if (
a.state){var
c =
null;
switch (
a.state){
case OpenLayers.State.UPDATE:
case OpenLayers.State.DELETE:
c =
"delete"}
c &&
b.setAttribute(
"action",
c)}}, CLASS_NAME:
"OpenLayers.Format.OSM"});
OpenLayers.Handler.Keyboard =
OpenLayers.Class(
OpenLayers.Handler, {KEY_EVENTS:[
"keydown",
"keyup"], eventListener:null, observeElement:null, initialize:function(
a,
b,
c){
OpenLayers.Handler.prototype.initialize.apply(
this, arguments); this.eventListener =
OpenLayers.Function.bindAsEventListener(this.handleKeyEvent,
this)}, destroy:
function(){this.deactivate(); this.eventListener =
null;
OpenLayers.Handler.prototype.destroy.apply(
this, arguments)}, activate:
function(){
if (
OpenLayers.Handler.prototype.activate.apply(
this,
646 arguments)){this.observeElement = this.observeElement ||
document;
for (var
a = 0,
b = this.KEY_EVENTS.length;
a <
b;
a++)
OpenLayers.Event.observe(this.observeElement, this.KEY_EVENTS[
a], this.eventListener);
return!0}
return!1}, deactivate:
function(){var
a = !1;
if (
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments)){
for (var
a = 0,
b = this.KEY_EVENTS.length;
a <
b;
a++)
OpenLayers.Event.stopObserving(this.observeElement, this.KEY_EVENTS[
a], this.eventListener);
a = !0}
return a}, handleKeyEvent:
function(
a){this.checkModifiers(
a) &&
647 this.callback(
a.type, [
a])}, CLASS_NAME:
"OpenLayers.Handler.Keyboard"});
OpenLayers.Control.ModifyFeature =
OpenLayers.Class(
OpenLayers.Control, {documentDrag:!1, geometryTypes:null, clickout:!0, toggle:!0, standalone:!1, layer:null, feature:null, vertex:null, vertices:null, virtualVertices:null, handlers:null, deleteCodes:null, virtualStyle:null, vertexRenderIntent:null, mode:null, createVertices:!0, modified:!1, radiusHandle:null, dragHandle:null, onModificationStart:function(){}, onModification:
function(){}, onModificationEnd:
function(){}, initialize:
function(
a,
b){
b =
b || {}; this.layer =
a; this.vertices =
648[]; this.virtualVertices = []; this.virtualStyle =
OpenLayers.Util.extend({}, this.layer.style || this.layer.styleMap.createSymbolizer(
null,
b.vertexRenderIntent)); this.virtualStyle.fillOpacity = 0.3; this.virtualStyle.strokeOpacity = 0.3; this.deleteCodes = [46, 68]; this.mode =
OpenLayers.Control.ModifyFeature.RESHAPE;
OpenLayers.Control.prototype.initialize.apply(
this, [
b]);
OpenLayers.Util.isArray(this.deleteCodes) || (this.deleteCodes = [this.deleteCodes]); var
c = {documentDrag:this.documentDrag, stopDown:!1}; this.handlers =
649{keyboard:
new OpenLayers.Handler.Keyboard(
this, {keydown:this.handleKeypress}), drag:new
OpenLayers.
Handler.
Drag(
this, {down:
function(
a){this.vertex =
null; (
a = this.layer.getFeatureFromEvent(this.handlers.drag.evt))?this.dragStart(
a):
this.clickout && (
this._unselect =
this.feature)}, move:function(
a){
delete this._unselect; this.vertex && this.dragVertex(this.vertex,
a)}, up:
function(){this.handlers.drag.stopDown = !1; this._unselect && (this.unselectFeature(this._unselect),
delete this._unselect)}, done:
function(
a){this.vertex &&
650 this.dragComplete(this.vertex)}},
c)}}, destroy:
function(){this.map && this.map.events.un({removelayer:this.handleMapEvents, changelayer:this.handleMapEvents, scope:
this}); this.layer =
null;
OpenLayers.Control.prototype.destroy.apply(
this, [])}, activate:
function(){this.moveLayerToTop(); this.map.events.on({removelayer:this.handleMapEvents, changelayer:this.handleMapEvents, scope:
this});
return this.handlers.keyboard.activate() && this.handlers.drag.activate() &&
OpenLayers.Control.prototype.activate.apply(
this, arguments)},
651 deactivate:
function(){var
a = !1;
OpenLayers.Control.prototype.deactivate.apply(
this, arguments) && (this.moveLayerBack(), this.map.events.un({removelayer:this.handleMapEvents, changelayer:this.handleMapEvents, scope:
this}), this.layer.removeFeatures(
this.vertices, {silent:!0}), this.layer.removeFeatures(this.virtualVertices, {silent:!0}), this.vertices = [], this.handlers.drag.deactivate(), this.handlers.keyboard.deactivate(), (
a = this.feature) && (
a.geometry &&
a.layer) && this.unselectFeature(
a),
a = !0);
return a}, beforeSelectFeature:
function(
a){
return this.layer.events.triggerEvent(
"beforefeaturemodified",
652{feature:
a})}, selectFeature:
function(
a){
if (!(this.feature ===
a || this.geometryTypes && - 1 ==
OpenLayers.Util.indexOf(
this.geometryTypes,
a.geometry.CLASS_NAME))){!1 !== this.beforeSelectFeature(
a) && (this.feature && this.unselectFeature(this.feature), this.feature =
a, this.layer.selectedFeatures.push(
a), this.layer.drawFeature(
a,
"select"), this.modified = !1, this.resetVertices(), this.onModificationStart(this.feature)); var
b =
a.modified; !
a.geometry ||
b &&
b.geometry || (this._originalGeometry =
a.geometry.clone())}}, unselectFeature:
function(
a){this.layer.removeFeatures(this.vertices,
653{silent:!0}); this.vertices = []; this.layer.destroyFeatures(this.virtualVertices, {silent:!0}); this.virtualVertices = []; this.dragHandle && (this.layer.destroyFeatures([this.dragHandle], {silent:!0}),
delete this.dragHandle); this.radiusHandle && (this.layer.destroyFeatures([this.radiusHandle], {silent:!0}),
delete this.radiusHandle); this.layer.drawFeature(this.feature,
"default"); this.feature =
null;
OpenLayers.Util.removeItem(this.layer.selectedFeatures,
a); this.onModificationEnd(
a); this.layer.events.triggerEvent(
"afterfeaturemodified",
654{feature:
a, modified:this.modified}); this.modified = !1}, dragStart:
function(
a){var
b =
"OpenLayers.Geometry.Point" ==
a.geometry.CLASS_NAME; this.standalone || (
a._sketch || !
b) &&
a._sketch || (
this.toggle &&
this.feature ===
a && (
this._unselect =
a),
this.selectFeature(
a));
if (
a._sketch ||
b)this.vertex =
a, this.handlers.drag.stopDown = !0}, dragVertex:
function(
a,
b){var
c = this.map.getLonLatFromViewPortPx(
b),
d =
a.geometry;
d.move(
c.lon -
d.x,
c.lat -
d.y); this.modified = !0;
"OpenLayers.Geometry.Point" == this.feature.geometry.CLASS_NAME?
655 this.layer.events.triggerEvent(
"vertexmodified", {vertex:
a.geometry, feature:this.feature, pixel:
b}):(
a._index?(
a.geometry.parent.addComponent(
a.geometry,
a._index), delete
a._index,
OpenLayers.
Util.
removeItem(
this.virtualVertices,
a),
this.vertices.push(
a)):
a ==
this.dragHandle?(
this.layer.removeFeatures(
this.vertices, {silent:!0}), this.vertices = [], this.radiusHandle && (this.layer.destroyFeatures([this.radiusHandle], {silent:!0}), this.radiusHandle =
null)):
a !==
this.radiusHandle &&
this.layer.events.triggerEvent(
"vertexmodified",
656{vertex:
a.geometry, feature:this.feature, pixel:
b}), 0 < this.virtualVertices.length && (
this.layer.destroyFeatures(
this.virtualVertices, {silent:!0}), this.virtualVertices = []), this.layer.drawFeature(
this.feature,
this.standalone?
void 0:
"select")); this.layer.drawFeature(
a)}, dragComplete:
function(
a){this.resetVertices(); this.setFeatureState(); this.onModification(this.feature); this.layer.events.triggerEvent(
"featuremodified", {feature:this.feature})}, setFeatureState:
function(){
if (this.feature.state !=
OpenLayers.State.INSERT &&
657 this.feature.state !=
OpenLayers.State.DELETE && (
this.feature.state =
OpenLayers.State.UPDATE,
this.modified &&
this._originalGeometry)){var
a = this.feature;
a.modified =
OpenLayers.Util.extend(
a.modified, {geometry:this._originalGeometry});
delete this._originalGeometry}}, resetVertices:
function(){0 < this.vertices.length && (this.layer.removeFeatures(this.vertices, {silent:!0}), this.vertices = []); 0 < this.virtualVertices.length && (this.layer.removeFeatures(this.virtualVertices, {silent:!0}), this.virtualVertices = []); this.dragHandle &&
658 (this.layer.destroyFeatures([this.dragHandle], {silent:!0}), this.dragHandle =
null); this.radiusHandle && (this.layer.destroyFeatures([this.radiusHandle], {silent:!0}), this.radiusHandle =
null); this.feature &&
"OpenLayers.Geometry.Point" != this.feature.geometry.CLASS_NAME && (this.mode &
OpenLayers.Control.ModifyFeature.DRAG && this.collectDragHandle(), this.mode & (
OpenLayers.Control.ModifyFeature.ROTATE |
OpenLayers.Control.ModifyFeature.RESIZE) && this.collectRadiusHandle(), this.mode &
OpenLayers.Control.ModifyFeature.RESHAPE &&
659 (this.mode &
OpenLayers.Control.ModifyFeature.RESIZE || this.collectVertices()))}, handleKeypress:
function(
a){var
b =
a.keyCode; this.feature && - 1 !=
OpenLayers.Util.indexOf(this.deleteCodes,
b) && (
b = this.layer.getFeatureFromEvent(this.handlers.drag.evt)) && ( - 1 !=
OpenLayers.Util.indexOf(this.vertices,
b) && !this.handlers.drag.dragging &&
b.geometry.parent) && (
b.geometry.parent.removeComponent(
b.geometry),
this.layer.events.triggerEvent(
"vertexremoved", {vertex:b.geometry, feature:this.feature, pixel:a.xy}),
this.layer.drawFeature(
this.feature,
660 this.standalone?
void 0:
"select"),
this.modified = !0,
this.resetVertices(),
this.setFeatureState(),
this.onModification(
this.feature),
this.layer.events.triggerEvent(
"featuremodified", {feature:this.feature}))}, collectVertices:
function(){
function a(
c){var
d,
e,
f;
if (
"OpenLayers.Geometry.Point" ==
c.CLASS_NAME)
e =
new OpenLayers.Feature.Vector(
c),
e._sketch = !0,
e.renderIntent =
b.vertexRenderIntent,
b.vertices.push(
e);
else{
f =
c.components.length;
"OpenLayers.Geometry.LinearRing" ==
c.CLASS_NAME && (
f -= 1);
for (
d = 0;
d <
f; ++
d)
e =
661 c.components[
d],
"OpenLayers.Geometry.Point" ==
e.CLASS_NAME?(
e =
new OpenLayers.Feature.Vector(
e),
e._sketch = !0,
e.renderIntent =
b.vertexRenderIntent,
b.vertices.push(
e)):
a(
e);
if (
b.createVertices &&
"OpenLayers.Geometry.MultiPoint" !=
c.CLASS_NAME)
for (
d = 0,
f =
c.components.length;
d <
f - 1; ++
d){
e =
c.components[
d]; var
g =
c.components[
d + 1];
"OpenLayers.Geometry.Point" ==
e.CLASS_NAME &&
"OpenLayers.Geometry.Point" ==
g.CLASS_NAME && (
e =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point((
e.x +
g.x) / 2, (
e.y +
g.y) / 2),
null,
b.virtualStyle),
662 e.geometry.parent =
c,
e._index =
d + 1,
e._sketch = !0,
b.virtualVertices.push(
e))}}}this.vertices = []; this.virtualVertices = []; var
b =
this;
a.call(
this, this.feature.geometry); this.layer.addFeatures(this.virtualVertices, {silent:!0}); this.layer.addFeatures(this.vertices, {silent:!0})}, collectDragHandle:
function(){var
a = this.feature.geometry,
b =
a.getBounds().getCenterLonLat(),
b =
new OpenLayers.Geometry.Point(
b.lon,
b.lat),
c =
new OpenLayers.Feature.Vector(
b);
b.move =
function(
b,
c){
OpenLayers.Geometry.Point.prototype.move.call(
this,
663 b,
c);
a.move(
b,
c)};
c._sketch = !0; this.dragHandle =
c; this.dragHandle.renderIntent = this.vertexRenderIntent; this.layer.addFeatures([this.dragHandle], {silent:!0})}, collectRadiusHandle:
function(){var
a = this.feature.geometry,
b =
a.getBounds(),
c =
b.getCenterLonLat(),
d =
new OpenLayers.Geometry.Point(
c.lon,
c.lat),
b =
new OpenLayers.Geometry.Point(
b.right,
b.bottom),
c =
new OpenLayers.Feature.Vector(
b),
e = this.mode &
OpenLayers.Control.ModifyFeature.RESIZE,
f = this.mode &
OpenLayers.Control.ModifyFeature.RESHAPE,
g = this.mode &
664 OpenLayers.Control.ModifyFeature.ROTATE;
b.move =
function(
b,
c){
OpenLayers.Geometry.Point.prototype.move.call(
this,
b,
c); var
l = this.
x -
d.x,
m = this.
y -
d.y,
n =
l -
b,
p =
m -
c;
if (
g){var
q =
Math.atan2(
p,
n),
q =
Math.atan2(
m,
l) -
q,
q =
q * (180 /
Math.PI);
a.rotate(
q,
d)}
if (
e){var
r;
f?(
m /=
p,
r =
l /
n /
m):(
n =
Math.sqrt(
n *
n +
p *
p),
m =
Math.sqrt(
l *
l +
m *
m) /
n);
a.resize(
m,
d,
r)}};
c._sketch = !0; this.radiusHandle =
c; this.radiusHandle.renderIntent = this.vertexRenderIntent; this.layer.addFeatures([this.radiusHandle], {silent:!0})}, setMap:
function(
a){this.handlers.drag.setMap(
a);
665 OpenLayers.Control.prototype.setMap.apply(
this, arguments)}, handleMapEvents:
function(
a){
"removelayer" !=
a.type &&
"order" !=
a.property || this.moveLayerToTop()}, moveLayerToTop:
function(){var
a =
Math.max(this.map.Z_INDEX_BASE.Feature - 1,
this.layer.getZIndex()) + 1; this.layer.setZIndex(
a)}, moveLayerBack:
function(){var
a = this.layer.getZIndex() - 1;
a >= this.map.Z_INDEX_BASE.Feature?this.layer.setZIndex(
a):this.map.setLayerZIndex(this.layer, this.map.getLayerIndex(
this.layer))}, CLASS_NAME:
"OpenLayers.Control.ModifyFeature"});
666 OpenLayers.Control.ModifyFeature.RESHAPE = 1;
OpenLayers.Control.ModifyFeature.RESIZE = 2;
OpenLayers.Control.ModifyFeature.ROTATE = 4;
OpenLayers.Control.ModifyFeature.DRAG = 8;
OpenLayers.Layer.Bing =
OpenLayers.Class(
OpenLayers.Layer.XYZ, {key:null, serverResolutions:[156543.03390625, 78271.516953125, 39135.7584765625, 19567.87923828125, 9783.939619140625, 4891.9698095703125, 2445.9849047851562, 1222.9924523925781, 611.4962261962891, 305.74811309814453, 152.87405654907226, 76.43702827453613, 38.218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508, 2.388657133579254, 1.194328566789627, 0.5971642833948135, 0.29858214169740677, 0.14929107084870338, 0.07464553542435169], attributionTemplate:
'<span class="olBingAttribution ${type}"><div><a target="_blank" href="http://www.bing.com/maps/"><img src="${logo}" /></a></div>${copyrights}<a style="white-space: nowrap" target="_blank" href="http://www.microsoft.com/maps/product/terms.html">Terms of Use</a></span>',
667 metadata:null, protocolRegex:/^http:/
i, type:
"Road", culture:
"en-US", metadataParams:null, tileOptions:null, protocol:~window.location.href.
indexOf(
"http")?
"":
"http:", initialize:function(
a){
a =
OpenLayers.Util.applyDefaults({sphericalMercator:!0},
a);
OpenLayers.Layer.XYZ.prototype.initialize.apply(
this, [
a.name ||
"Bing " + (
a.type ||
this.type),
null,
a]);
this.tileOptions =
OpenLayers.Util.extend({crossOriginKeyword:
"anonymous"},
this.options.tileOptions);
this.loadMetadata()}, loadMetadata:
function(){this._callbackId =
668 "_callback_" + this.
id.replace(/\./g,
"_"); window[this._callbackId] =
OpenLayers.Function.bind(
OpenLayers.Layer.Bing.processMetadata,
this); var
a =
OpenLayers.Util.applyDefaults({key:this.key, jsonp:this._callbackId,
include:
"ImageryProviders"}, this.metadataParams),
a = this.protocol +
"//dev.virtualearth.net/REST/v1/Imagery/Metadata/" + this.type +
"?" +
OpenLayers.Util.getParameterString(
a),
b =
document.createElement(
"script");
b.type =
"text/javascript";
b.src =
a;
b.id = this._callbackId;
document.getElementsByTagName(
"head")[0].appendChild(
b)},
669 initLayer:
function(){var
a = this.metadata.resourceSets[0].resources[0],
b =
a.imageUrl.replace(
"{quadkey}",
"${quadkey}"),
b =
b.replace(
"{culture}", this.culture),
b =
b.replace(this.protocolRegex, this.protocol); this.url = [];
for (var
c = 0;
c <
a.imageUrlSubdomains.length; ++
c)this.url.push(
b.replace(
"{subdomain}",
a.imageUrlSubdomains[
c])); this.addOptions({maxResolution:
Math.min(this.serverResolutions[
a.zoomMin],
this.maxResolution ||
Number.POSITIVE_INFINITY), numZoomLevels:
Math.min(
a.zoomMax + 1 -
a.zoomMin,
this.numZoomLevels)},
670 !0); this.isBaseLayer || this.redraw(); this.updateAttribution()}, getURL:
function(
a){
if (this.url){var
b = this.getXYZ(
a);
a =
b.x;
for (var
c =
b.y,
b =
b.z,
d = [],
e =
b; 0 <
e; --
e){var
f =
"0",
g = 1 <<
e - 1; 0 != (
a &
g) &&
f++; 0 != (
c &
g) && (
f++,
f++);
d.push(
f)}
d =
d.join(
"");
a = this.selectUrl(
"" +
a +
c +
b, this.url);
return OpenLayers.String.format(
a, {quadkey:
d})}}, updateAttribution:
function(){var
a = this.metadata;
if (
a.resourceSets &&
this.map &&
this.map.center){var
b =
a.resourceSets[0].resources[0],
c = this.map.getExtent().transform(this.map.getProjectionObject(),
671 new OpenLayers.Projection(
"EPSG:4326")),
d =
b.imageryProviders || [],
e =
OpenLayers.Util.indexOf(this.serverResolutions, this.getServerResolution()),
b =
"",
f,
g,
h,
k,
l,
m,
n;
g = 0;
for (
h =
d.length;
g <
h; ++
g)
for (
f =
d[
g],
k = 0,
l =
f.coverageAreas.length;
k <
l; ++
k)
n =
f.coverageAreas[
k],
m =
OpenLayers.Bounds.fromArray(
n.bbox, !0),
c.intersectsBounds(
m) && (
e <=
n.zoomMax &&
e >=
n.zoomMin) && (
b +=
f.attribution +
" ");
a =
a.brandLogoUri.replace(this.protocolRegex, this.protocol); this.attribution =
OpenLayers.String.format(this.attributionTemplate, {type:this.type.toLowerCase(),
672 logo:
a, copyrights:
b}); this.map && this.map.events.triggerEvent(
"changelayer", {layer:
this, property:
"attribution"})}}, setMap:
function(){
OpenLayers.Layer.XYZ.prototype.setMap.apply(
this, arguments); this.map.events.register(
"moveend",
this, this.updateAttribution)},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.Bing(this.options));
return a =
OpenLayers.Layer.XYZ.prototype.clone.apply(
this, [
a])}, destroy:
function(){this.map && this.map.events.unregister(
"moveend",
this, this.updateAttribution);
OpenLayers.Layer.XYZ.prototype.destroy.apply(
this,
673 arguments)}, CLASS_NAME:
"OpenLayers.Layer.Bing"});
OpenLayers.Layer.Bing.processMetadata =
function(
a){this.metadata =
a; this.initLayer();
a =
document.getElementById(this._callbackId);
a.parentNode.removeChild(
a); window[this._callbackId] =
void 0;
delete this._callbackId};
OpenLayers.StyleMap =
OpenLayers.Class({styles:
null, extendDefault:!0, initialize:
function(
a,
b){this.styles = {
"default":
new OpenLayers.Style(
OpenLayers.Feature.Vector.style[
"default"]), select:
new OpenLayers.Style(
OpenLayers.Feature.Vector.style.select), temporary:
new OpenLayers.Style(
OpenLayers.Feature.Vector.style.temporary),
"delete":
new OpenLayers.Style(
OpenLayers.Feature.Vector.style[
"delete"])};
if (
a instanceof
OpenLayers.Style)this.styles[
"default"] =
a, this.styles.select =
a, this.styles.temporary =
a, this.styles[
"delete"] =
674 a;
else if (
"object" == typeof
a)
for (var
c in
a)
if (
a[
c]instanceof
OpenLayers.Style)this.styles[
c] =
a[
c];
else if (
"object" == typeof
a[
c])this.styles[
c] =
new OpenLayers.Style(
a[
c]);
else{this.styles[
"default"] =
new OpenLayers.Style(
a); this.styles.select =
new OpenLayers.Style(
a); this.styles.temporary =
new OpenLayers.Style(
a); this.styles[
"delete"] =
new OpenLayers.Style(
a);
break}
OpenLayers.Util.extend(
this,
b)}, destroy:
function(){
for (var
a in this.styles)this.styles[
a].destroy(); this.styles =
null}, createSymbolizer:
function(
a,
675 b){
a || (
a =
new OpenLayers.Feature.Vector); this.styles[
b] || (
b =
"default");
a.renderIntent =
b; var
c = {}; this.extendDefault &&
"default" !=
b && (
c = this.styles[
"default"].createSymbolizer(
a));
return OpenLayers.Util.extend(
c, this.styles[
b].createSymbolizer(
a))}, addUniqueValueRules:
function(
a,
b,
c,
d){var
e = [],
f;
for (
f in
c)
e.push(
new OpenLayers.Rule({symbolizer:c[f], context:d, filter:new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.EQUAL_TO, property:b, value:f})})); this.styles[
a].addRules(
e)}, CLASS_NAME:
"OpenLayers.StyleMap"});
OpenLayers.Layer.Vector =
OpenLayers.Class(
OpenLayers.Layer, {isBaseLayer:!1, isFixed:!1, features:null, filter:null, selectedFeatures:null, unrenderedFeatures:null, reportError:!0,
style:null, styleMap:null, strategies:null, protocol:null, renderers:[
"SVG",
"VML",
"Canvas"], renderer:null, rendererOptions:null, geometryType:null, drawn:!1, ratio:1, initialize:function(
a,
b){
OpenLayers.Layer.prototype.initialize.apply(
this, arguments); this.renderer && this.renderer.supported() || this.assignRenderer(); this.renderer && this.renderer.supported() ||
676 (this.renderer =
null, this.displayError()); this.styleMap || (this.styleMap =
new OpenLayers.StyleMap); this.features = []; this.selectedFeatures = []; this.unrenderedFeatures = {};
if (this.strategies)
for (var
c = 0,
d = this.strategies.length;
c <
d;
c++)
this.strategies[
c].setLayer(
this)}, destroy:
function(){
if (this.strategies){var
a,
b,
c;
b = 0;
for (
c = this.strategies.length;
b <
c;
b++)
a = this.strategies[
b],
a.autoDestroy &&
a.destroy(); this.strategies =
null}this.protocol && (this.protocol.autoDestroy && this.protocol.destroy(), this.protocol =
677 null); this.destroyFeatures(); this.unrenderedFeatures = this.selectedFeatures = this.features =
null; this.renderer && this.renderer.destroy(); this.drawn = this.geometryType = this.renderer =
null;
OpenLayers.Layer.prototype.destroy.apply(
this, arguments)},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.Vector(this.name, this.getOptions()));
a =
OpenLayers.Layer.prototype.clone.apply(
this, [
a]);
for (var
b = this.features,
c =
b.length,
d =
Array(
c),
e = 0;
e <
c; ++
e)
d[
e] =
b[
e].
clone();
a.features =
d;
return a}, refresh:
function(
a){this.calculateInRange() &&
678 this.visibility && this.events.triggerEvent(
"refresh",
a)}, assignRenderer:
function(){
for (var
a = 0,
b = this.renderers.length;
a <
b;
a++){var
c = this.renderers[
a];
if ((
c =
"function" == typeof
c?
c:
OpenLayers.Renderer[
c]) &&
c.prototype.supported()){this.renderer =
new c(this.div, this.rendererOptions);
break}}}, displayError:
function(){this.reportError &&
OpenLayers.Console.userError(
OpenLayers.i18n(
"browserNotSupported", {renderers:this.renderers.join(
"\n")}))}, setMap:
function(
a){
OpenLayers.Layer.prototype.setMap.apply(
this,
679 arguments);
if (this.renderer){this.renderer.map = this.map; var
b = this.map.getSize();
b.w *= this.ratio;
b.h *= this.ratio; this.renderer.setSize(
b)}
else this.map.removeLayer(
this)}, afterAdd:
function(){
if (this.strategies){var
a,
b,
c;
b = 0;
for (
c = this.strategies.length;
b <
c;
b++)
a = this.strategies[
b],
a.autoActivate &&
a.activate()}}, removeMap:
function(
a){this.drawn = !1;
if (this.strategies){var
b,
c;
b = 0;
for (
c = this.strategies.length;
b <
c;
b++)
a = this.strategies[
b],
a.autoActivate &&
a.deactivate()}}, onMapResize:
function(){
OpenLayers.Layer.prototype.onMapResize.apply(
this,
680 arguments); var
a = this.map.getSize();
a.w *= this.ratio;
a.h *= this.ratio; this.renderer.setSize(
a)},
moveTo:
function(
a,
b,
c){
OpenLayers.Layer.prototype.moveTo.apply(
this, arguments); var
d = !0;
if (!
c){this.renderer.root.style.visibility =
"hidden"; var
d = this.map.getSize(),
e =
d.w,
d =
d.h,
e =
e / 2 * this.ratio -
e / 2,
d =
d / 2 * this.ratio -
d / 2,
e =
e + this.map.layerContainerOriginPx.x,
e = -
Math.round(
e),
d =
d + this.map.layerContainerOriginPx.y,
d = -
Math.round(
d); this.div.style.left =
e +
"px"; this.div.style.top =
d +
"px";
e = this.map.getExtent().scale(this.ratio);
681 d = this.renderer.setExtent(
e,
b); this.renderer.root.style.visibility =
"visible"; !0 ===
OpenLayers.IS_GECKO && (this.div.scrollLeft = this.div.scrollLeft);
if (!
b &&
d)
for (var
f in this.unrenderedFeatures)
e = this.unrenderedFeatures[
f], this.drawFeature(
e)}
if (!this.drawn ||
b || !
d)
for (this.drawn = !0,
f = 0,
d = this.features.length;
f <
d;
f++)this.renderer.locked =
f !==
d - 1,
e = this.features[
f], this.drawFeature(
e)}, display:
function(
a){
OpenLayers.Layer.prototype.display.apply(
this, arguments); var
b = this.div.style.display;
b != this.renderer.root.style.display &&
682 (this.renderer.root.style.display =
b)}, addFeatures:
function(
a,
b){
OpenLayers.Util.isArray(
a) || (
a = [
a]); var
c = !
b || !
b.silent;
if (
c){var
d = {features:
a};
if (!1 === this.events.triggerEvent(
"beforefeaturesadded",
d))
return;
a =
d.features}
for (var
d = [],
e = 0,
f =
a.length;
e <
f;
e++){this.renderer.locked =
e !=
a.length - 1?!0:!1; var
g =
a[
e];
if (this.geometryType && !(
g.geometry instanceof
this.geometryType))
throw new TypeError(
"addFeatures: component should be an " + this.geometryType.prototype.CLASS_NAME);
g.layer =
this; !
g.style && this.
style &&
683 (
g.style =
OpenLayers.Util.extend({}, this.
style));
if (
c){
if (!1 === this.events.triggerEvent(
"beforefeatureadded", {feature:g}))
continue; this.preFeatureInsert(
g)}
d.push(
g); this.features.push(
g); this.drawFeature(
g);
c && (this.events.triggerEvent(
"featureadded", {feature:
g}), this.onFeatureInsert(
g))}
c && this.events.triggerEvent(
"featuresadded", {features:
d})}, removeFeatures:
function(
a,
b){
if (
a && 0 !==
a.length){
if (
a === this.features)
return this.removeAllFeatures(
b);
OpenLayers.Util.isArray(
a) || (
a = [
a]);
a === this.selectedFeatures &&
684 (
a =
a.slice()); var
c = !
b || !
b.silent;
c && this.events.triggerEvent(
"beforefeaturesremoved", {features:
a});
for (var
d =
a.length - 1; 0 <=
d;
d--){this.renderer.locked = 0 !=
d &&
a[
d - 1].geometry?!0:!1; var
e =
a[
d];
delete this.unrenderedFeatures[
e.id];
c && this.events.triggerEvent(
"beforefeatureremoved", {feature:
e}); this.features =
OpenLayers.Util.removeItem(this.features,
e);
e.layer =
null;
e.geometry && this.renderer.eraseFeatures(
e); - 1 !=
OpenLayers.Util.indexOf(this.selectedFeatures,
e) &&
OpenLayers.Util.removeItem(this.selectedFeatures,
685 e);
c && this.events.triggerEvent(
"featureremoved", {feature:
e})}
c && this.events.triggerEvent(
"featuresremoved", {features:
a})}}, removeAllFeatures:
function(
a){
a = !
a || !
a.silent; var
b = this.features;
a && this.events.triggerEvent(
"beforefeaturesremoved", {features:
b});
for (var
c,
d =
b.length - 1; 0 <=
d;
d--)
c =
b[
d],
a && this.events.triggerEvent(
"beforefeatureremoved", {feature:
c}),
c.layer =
null,
a &&
this.events.triggerEvent(
"featureremoved", {feature:c}); this.renderer.clear(); this.features = []; this.unrenderedFeatures = {}; this.selectedFeatures =
686[];
a && this.events.triggerEvent(
"featuresremoved", {features:
b})}, destroyFeatures:
function(
a,
b){
void 0 ==
a && (
a = this.features);
if (
a){this.removeFeatures(
a,
b);
for (var
c =
a.length - 1; 0 <=
c;
c--)
a[
c].destroy()}}, drawFeature:
function(
a,
b){
if (this.drawn){
if (
"object" != typeof
b){
b ||
a.state !==
OpenLayers.State.DELETE || (
b =
"delete"); var
c =
b ||
a.renderIntent; (
b =
a.style || this.
style) || (
b = this.styleMap.createSymbolizer(
a,
c))}
c = this.renderer.drawFeature(
a,
b); !1 ===
c ||
null ===
c?this.unrenderedFeatures[
a.id] =
a:
delete this.unrenderedFeatures[
a.id]}},
687 eraseFeatures:
function(
a){this.renderer.eraseFeatures(
a)}, getFeatureFromEvent:
function(
a){
if (!this.renderer)
throw Error(
"getFeatureFromEvent called on layer with no renderer. This usually means you destroyed a layer, but not some handler which is associated with it."); var
b =
null; (
a = this.renderer.getFeatureIdFromEvent(
a)) && (
b =
"string" === typeof
a?this.getFeatureById(
a):
a);
return b}, getFeatureBy:
function(
a,
b){
for (var
c =
null,
d = 0,
e = this.features.length;
d <
e; ++
d)
if (this.features[
d][
a] ==
b){
c = this.features[
d];
688break}
return c}, getFeatureById:
function(
a){
return this.getFeatureBy(
"id",
a)}, getFeatureByFid:
function(
a){
return this.getFeatureBy(
"fid",
a)}, getFeaturesByAttribute:
function(
a,
b){var
c,
d,
e = this.features.length,
f = [];
for (
c = 0;
c <
e;
c++)(
d = this.features[
c]) &&
d.attributes &&
d.attributes[
a] ===
b &&
f.push(
d);
return f}, onFeatureInsert:
function(
a){}, preFeatureInsert:
function(
a){}, getDataExtent:
function(){var
a =
null,
b = this.features;
if (
b && 0 <
b.length)
for (var
c =
null,
d = 0,
e =
b.length;
d <
e;
d++)
if (
c =
b[
d].geometry)
null ===
a &&
689 (
a =
new OpenLayers.Bounds),
a.extend(
c.getBounds());
return a}, CLASS_NAME:
"OpenLayers.Layer.Vector"});
OpenLayers.Layer.PointGrid =
OpenLayers.Class(
OpenLayers.Layer.Vector, {dx:null, dy:null, ratio:1.5, maxFeatures:250, rotation:0, origin:null, gridBounds:null, initialize:function(
a){
a =
a || {};
OpenLayers.Layer.Vector.prototype.initialize.apply(
this, [
a.name,
a])}, setMap:
function(
a){
OpenLayers.Layer.Vector.prototype.setMap.apply(
this, arguments);
a.events.register(
"moveend",
this, this.onMoveEnd)}, removeMap:
function(
a){
a.events.unregister(
"moveend",
this, this.onMoveEnd);
OpenLayers.Layer.Vector.prototype.removeMap.apply(
this,
690 arguments)}, setRatio:
function(
a){this.ratio =
a; this.updateGrid(!0)}, setMaxFeatures:
function(
a){this.maxFeatures =
a; this.updateGrid(!0)}, setSpacing:
function(
a,
b){this.dx =
a; this.dy =
b ||
a; this.updateGrid(!0)}, setOrigin:
function(
a){this.origin =
a; this.updateGrid(!0)}, getOrigin:
function(){this.origin || (this.origin = this.map.getExtent().getCenterLonLat());
return this.origin}, setRotation:
function(
a){this.rotation =
a; this.updateGrid(!0)}, onMoveEnd:
function(){this.updateGrid()}, getViewBounds:
function(){var
a = this.map.getExtent();
691 if (this.rotation){var
b = this.getOrigin(),
b =
new OpenLayers.Geometry.Point(
b.lon,
b.lat),
a =
a.toGeometry();
a.rotate( - this.rotation,
b);
a =
a.getBounds()}
return a}, updateGrid:
function(
a){
if (
a || this.invalidBounds()){var
b = this.getViewBounds(),
c = this.getOrigin();
a =
new OpenLayers.Geometry.Point(
c.lon,
c.lat); var
d =
b.getWidth(),
e =
b.getHeight(),
f =
d /
e,
g =
Math.sqrt(this.dx * this.dy * this.maxFeatures /
f),
d =
Math.min(
d * this.ratio,
g *
f),
e =
Math.min(
e * this.ratio,
g),
b =
b.getCenterLonLat(); this.gridBounds =
new OpenLayers.Bounds(
b.lon -
692 d / 2,
b.lat -
e / 2,
b.lon +
d / 2,
b.lat +
e / 2);
for (var
b =
Math.floor(
e /
this.dy),
d =
Math.floor(
d /
this.dx),
e =
c.lon +
this.dx *
Math.ceil((
this.gridBounds.left -
c.lon) /
this.dx),
c =
c.lat +
this.dy *
Math.ceil((
this.gridBounds.bottom -
c.lat) /
this.dy),
g =
Array(
b *
d),
h,
k = 0;
k <
d; ++
k)
for (var
f =
e +
k * this.dx,
l = 0;
l <
b; ++
l)
h =
c +
l * this.dy,
h =
new OpenLayers.Geometry.Point(
f,
h), this.rotation &&
h.rotate(this.rotation,
a),
g[
k *
b +
l] =
new OpenLayers.Feature.Vector(
h); this.destroyFeatures(this.features, {silent:!0}); this.addFeatures(
g, {silent:!0})}}, invalidBounds:
function(){
return!this.gridBounds ||
693 !this.gridBounds.containsBounds(this.getViewBounds())}, CLASS_NAME:
"OpenLayers.Layer.PointGrid"});
OpenLayers.Handler.MouseWheel =
OpenLayers.Class(
OpenLayers.Handler, {wheelListener:null, interval:0, maxDelta:
Number.POSITIVE_INFINITY, delta:0, cumulative:!0, initialize:function(
a,
b,
c){
OpenLayers.Handler.prototype.initialize.apply(
this, arguments); this.wheelListener =
OpenLayers.Function.bindAsEventListener(this.onWheelEvent,
this)}, destroy:
function(){
OpenLayers.Handler.prototype.destroy.apply(
this, arguments); this.wheelListener =
null}, onWheelEvent:
function(
a){
if (this.map && this.checkModifiers(
a)){
for (var
b =
694 !1,
c = !1,
d = !1,
e =
OpenLayers.Event.element(
a);
null !=
e && !
d && !
b; ){
if (!
b)
try{var
f,
b = (
f =
e.currentStyle?
e.currentStyle.overflow:
document.defaultView.getComputedStyle(
e,
null).getPropertyValue(
"overflow")) &&
"auto" ==
f ||
"scroll" ==
f}
catch (
g){}
if (!
c && (
c =
OpenLayers.Element.hasClass(
e,
"olScrollable"), !
c))
for (var
d = 0,
h = this.map.layers.length;
d <
h;
d++){var
k = this.map.layers[
d];
if (
e ==
k.div ||
e ==
k.pane){
c = !0;
break}}
d =
e == this.map.div;
e =
e.parentNode}
if (!
b &&
d){
if (
c)
if (
b = 0,
a.wheelDelta?(
b =
a.wheelDelta, 0 ===
b % 160 && (
b *= 0.75),
695 b /= 120):
a.detail && (
b = - (
a.detail /
Math.abs(
a.detail))),
this.delta +=
b, window.clearTimeout(
this._timeoutId),
this.interval &&
Math.abs(
this.delta) <
this.maxDelta){var
l =
OpenLayers.Util.extend({},
a); this._timeoutId = window.setTimeout(
OpenLayers.Function.bind(
function(){this.wheelZoom(l)},
this),
this.interval)}
else this.wheelZoom(
a);
OpenLayers.Event.stop(
a)}}}, wheelZoom:
function(
a){var
b = this.delta; this.delta = 0;
b && (
a.xy = this.map.events.getMousePosition(
a), 0 >
b?this.callback(
"down", [
a, this.cumulative?
Math.max( -
this.maxDelta,
696 b): - 1]):
this.callback(
"up", [
a,
this.cumulative?
Math.min(
this.maxDelta,
b):1]))}, activate:
function(
a){
if (
OpenLayers.Handler.prototype.activate.apply(
this, arguments)){var
b = this.wheelListener;
OpenLayers.Event.observe(window,
"DOMMouseScroll",
b);
OpenLayers.Event.observe(window,
"mousewheel",
b);
OpenLayers.Event.observe(
document,
"mousewheel",
b);
return!0}
return!1}, deactivate:
function(
a){
if (
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments)){var
b = this.wheelListener;
OpenLayers.Event.stopObserving(window,
697 "DOMMouseScroll",
b);
OpenLayers.Event.stopObserving(window,
"mousewheel",
b);
OpenLayers.Event.stopObserving(
document,
"mousewheel",
b);
return!0}
return!1}, CLASS_NAME:
"OpenLayers.Handler.MouseWheel"});
OpenLayers.Symbolizer =
OpenLayers.Class({zIndex:0, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a)},
clone:
function(){
return new (eval(this.CLASS_NAME))(
OpenLayers.Util.extend({},
this))}, CLASS_NAME:
"OpenLayers.Symbolizer"});
OpenLayers.Symbolizer.Raster =
OpenLayers.Class(
OpenLayers.Symbolizer, {initialize:function(
a){
OpenLayers.Symbolizer.prototype.initialize.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Symbolizer.Raster"});
OpenLayers.Rule =
OpenLayers.Class({id:
null, name:
null, title:
null, description:
null, context:
null, filter:
null, elseFilter:!1, symbolizer:
null, symbolizers:
null, minScaleDenominator:
null, maxScaleDenominator:
null, initialize:
function(
a){this.symbolizer = {};
OpenLayers.Util.extend(
this,
a); this.symbolizers &&
delete this.symbolizer; this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, destroy:
function(){
for (var
a in this.symbolizer)this.symbolizer[
a] =
null; this.symbolizer =
null;
delete this.symbolizers}, evaluate:
function(
a){var
b =
698 this.getContext(
a),
c = !0;
if (this.minScaleDenominator || this.maxScaleDenominator)var
d =
a.layer.map.getScale(); this.minScaleDenominator && (
c =
d >=
OpenLayers.Style.createLiteral(this.minScaleDenominator,
b));
c && this.maxScaleDenominator && (
c =
d <
OpenLayers.Style.createLiteral(this.maxScaleDenominator,
b));
c && this.filter && (
c =
"OpenLayers.Filter.FeatureId" == this.filter.CLASS_NAME?this.filter.evaluate(
a):this.filter.evaluate(
b));
return c}, getContext:
function(
a){var
b = this.context;
b || (
b =
a.attributes ||
a.data);
"function" ==
699 typeof this.context && (
b = this.context(
a));
return b},
clone:
function(){var
a =
OpenLayers.Util.extend({},
this);
if (this.symbolizers){var
b = this.symbolizers.length;
a.symbolizers =
Array(
b);
for (var
c = 0;
c <
b; ++
c)
a.symbolizers[
c] =
this.symbolizers[
c].clone()}
else{
a.symbolizer = {};
for (var
d in this.symbolizer)
b = this.symbolizer[
d],
c = typeof
b,
"object" ===
c?
a.symbolizer[
d] =
OpenLayers.Util.extend({},
b):
"string" ===
c && (
a.symbolizer[
d] =
b)}
a.filter =
this.filter &&
this.filter.
clone();
a.context = this.context &&
OpenLayers.Util.extend({},
700 this.context);
return new OpenLayers.Rule(
a)}, CLASS_NAME:
"OpenLayers.Rule"});
OpenLayers.Format.SLD =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {profile:null, defaultVersion:
"1.0.0", stringifyOutput:!0, namedLayersAsArray:!1, CLASS_NAME:
"OpenLayers.Format.SLD"});
OpenLayers.Symbolizer.Polygon =
OpenLayers.Class(
OpenLayers.Symbolizer, {initialize:function(
a){
OpenLayers.Symbolizer.prototype.initialize.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Symbolizer.Polygon"});
OpenLayers.Format.GML.v2 =
OpenLayers.Class(
OpenLayers.Format.GML.Base, {schemaLocation:
"http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd", initialize:function(
a){
OpenLayers.Format.GML.Base.prototype.initialize.apply(
this, [
a])}, readers:{gml:
OpenLayers.Util.applyDefaults({outerBoundaryIs:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.outer =
c.components[0]}, innerBoundaryIs:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.inner.push(
c.components[0])}, Box:
function(
a,
b){var
c =
701{}; this.readChildNodes(
a,
c);
b.components || (
b.components = []); var
d =
c.points[0],
c =
c.points[1];
b.components.push(
new OpenLayers.Bounds(
d.x,
d.y,
c.x,
c.y))}},
OpenLayers.Format.GML.Base.prototype.readers.gml), feature:
OpenLayers.
Format.
GML.
Base.
prototype.readers.feature, wfs:
OpenLayers.
Format.
GML.
Base.
prototype.readers.wfs}, write:function(
a){var
b;
b =
OpenLayers.Util.isArray(
a)?
"wfs:FeatureCollection":
"gml:featureMember";
a = this.writeNode(
b,
a); this.setAttributeNS(
a, this.
namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
702 return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, writers:{gml:
OpenLayers.Util.applyDefaults({
Point:
function(
a){var
b = this.createElementNSPlus(
"gml:Point"); this.writeNode(
"coordinates", [
a],
b);
return b}, coordinates:
function(
a){
for (var
b =
a.length,
c =
Array(
b),
d,
e = 0;
e <
b; ++
e)
d =
a[
e],
c[
e] = this.xy?
d.x +
"," +
d.y:
d.
y +
"," +
d.
x, void 0 !=
d.
z && (
c[
e] +=
"," +
d.
z);
return this.createElementNSPlus(
"gml:coordinates", {attributes:{decimal:
".", cs:
",", ts:
" "}, value:1 ==
b?
c[0]:
c.join(
" ")})},
LineString:
function(
a){var
b =
703 this.createElementNSPlus(
"gml:LineString"); this.writeNode(
"coordinates",
a.components,
b);
return b},
Polygon:
function(
a){var
b = this.createElementNSPlus(
"gml:Polygon"); this.writeNode(
"outerBoundaryIs",
a.components[0],
b);
for (var
c = 1;
c <
a.components.length; ++
c)this.writeNode(
"innerBoundaryIs",
a.components[
c],
b);
return b}, outerBoundaryIs:
function(
a){var
b = this.createElementNSPlus(
"gml:outerBoundaryIs"); this.writeNode(
"LinearRing",
a,
b);
return b}, innerBoundaryIs:
function(
a){var
b = this.createElementNSPlus(
"gml:innerBoundaryIs");
704 this.writeNode(
"LinearRing",
a,
b);
return b},
LinearRing:
function(
a){var
b = this.createElementNSPlus(
"gml:LinearRing"); this.writeNode(
"coordinates",
a.components,
b);
return b}, Box:
function(
a){var
b = this.createElementNSPlus(
"gml:Box"); this.writeNode(
"coordinates", [{
x:
a.left,
y:
a.bottom}, {
x:
a.right,
y:
a.top}],
b); this.srsName &&
b.setAttribute(
"srsName", this.srsName);
return b}},
OpenLayers.Format.GML.Base.prototype.writers.gml), feature:
OpenLayers.
Format.
GML.
Base.
prototype.writers.feature, wfs:
OpenLayers.
Format.
GML.
Base.
prototype.writers.wfs},
705 CLASS_NAME:
"OpenLayers.Format.GML.v2"});
OpenLayers.Format.Filter.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.GML.v2,
OpenLayers.Format.Filter.v1, {VERSION:
"1.0.0", schemaLocation:
"http://www.opengis.net/ogc/filter/1.0.0/filter.xsd", initialize:function(
a){
OpenLayers.Format.GML.v2.prototype.initialize.apply(
this, [
a])}, readers:{ogc:
OpenLayers.Util.applyDefaults({PropertyIsEqualTo:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.EQUAL_TO}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsNotEqualTo:
function(
a,
706 b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.NOT_EQUAL_TO}); this.readChildNodes(
a,
c);
b.filters.push(
c)}, PropertyIsLike:
function(
a,
b){var
c =
new OpenLayers.Filter.Comparison({type:
OpenLayers.Filter.Comparison.LIKE}); this.readChildNodes(
a,
c); var
d =
a.getAttribute(
"wildCard"),
e =
a.getAttribute(
"singleChar"),
f =
a.getAttribute(
"escape");
c.value2regex(
d,
e,
f);
b.filters.push(
c)}},
OpenLayers.Format.Filter.v1.prototype.readers.ogc), gml:
OpenLayers.
Format.
GML.
v2.
prototype.readers.gml,
707 feature:
OpenLayers.
Format.
GML.
v2.
prototype.readers.feature}, writers:{ogc:
OpenLayers.Util.applyDefaults({PropertyIsEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsEqualTo"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsNotEqualTo:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsNotEqualTo"); this.writeNode(
"PropertyName",
a,
b); this.writeOgcExpression(
a.value,
b);
return b}, PropertyIsLike:
function(
a){var
b = this.createElementNSPlus(
"ogc:PropertyIsLike",
708{attributes:{wildCard:
"*", singleChar:
".", escape:
"!"}}); this.writeNode(
"PropertyName",
a,
b); this.writeNode(
"Literal",
a.regex2value(),
b);
return b},
BBOX:
function(
a){var
b = this.createElementNSPlus(
"ogc:BBOX");
a.property && this.writeNode(
"PropertyName",
a,
b); var
c = this.writeNode(
"gml:Box",
a.value,
b);
a.projection &&
c.setAttribute(
"srsName",
a.projection);
return b}},
OpenLayers.Format.Filter.v1.prototype.writers.ogc), gml:
OpenLayers.
Format.
GML.
v2.
prototype.writers.gml, feature:
OpenLayers.
Format.
GML.
v2.
prototype.writers.feature},
709 writeSpatial:function(
a,
b){var
c = this.createElementNSPlus(
"ogc:" +
b); this.writeNode(
"PropertyName",
a,
c);
if (
a.value instanceof
OpenLayers.Filter.Function)this.writeNode(
"Function",
a.value,
c);
else{var
d;
d =
a.value instanceof
OpenLayers.Geometry?this.writeNode(
"feature:_geometry",
a.value).firstChild:this.writeNode(
"gml:Box",
a.value);
a.projection &&
d.setAttribute(
"srsName",
a.projection);
c.appendChild(
d)}
return c}, CLASS_NAME:
"OpenLayers.Format.Filter.v1_0_0"});
OpenLayers.Format.WFST.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.Filter.v1_0_0,
OpenLayers.Format.WFST.v1, {
version:
"1.0.0", srsNameInQuery:!1, schemaLocations:{wfs:
"http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"}, initialize:
function(
a){
OpenLayers.Format.Filter.v1_0_0.prototype.initialize.apply(
this, [
a]);
OpenLayers.Format.WFST.v1.prototype.initialize.apply(
this, [
a])}, readNode:
function(
a,
b,
c){
return OpenLayers.Format.GML.v2.prototype.readNode.apply(
this, arguments)}, readers:{wfs:
OpenLayers.Util.applyDefaults({WFS_TransactionResponse:
function(
a,
710 b){
b.insertIds = [];
b.success = !1; this.readChildNodes(
a,
b)}, InsertResult:
function(
a,
b){var
c = {fids:[]}; this.readChildNodes(
a,
c);
b.insertIds =
b.insertIds.concat(
c.fids)}, TransactionResult:
function(
a,
b){this.readChildNodes(
a,
b)}, Status:
function(
a,
b){this.readChildNodes(
a,
b)},
SUCCESS:
function(
a,
b){
b.success = !0}},
OpenLayers.Format.WFST.v1.prototype.readers.wfs), gml:
OpenLayers.
Format.
GML.
v2.
prototype.readers.gml, feature:
OpenLayers.
Format.
GML.
v2.
prototype.readers.feature, ogc:
OpenLayers.
Format.
Filter.
v1_0_0.
prototype.readers.ogc},
711 writers:{wfs:
OpenLayers.Util.applyDefaults({Query:
function(
a){
a =
OpenLayers.Util.extend({featureNS:this.featureNS, featurePrefix:this.featurePrefix, featureType:this.featureType, srsName:this.srsName, srsNameInQuery:this.srsNameInQuery},
a); var
b =
a.featurePrefix,
c = this.createElementNSPlus(
"wfs:Query", {attributes:{typeName:(
b?
b +
":":
"") +
a.featureType}});
a.srsNameInQuery &&
a.srsName &&
c.setAttribute(
"srsName",
a.srsName);
a.featureNS &&
c.setAttribute(
"xmlns:" +
b,
a.featureNS);
if (
a.propertyNames)
for (var
b = 0,
d =
a.propertyNames.length;
b <
712 d;
b++)this.writeNode(
"ogc:PropertyName", {property:
a.propertyNames[
b]},
c);
a.filter && (this.setFilterProperty(
a.filter), this.writeNode(
"ogc:Filter",
a.filter,
c));
return c}},
OpenLayers.Format.WFST.v1.prototype.writers.wfs), gml:
OpenLayers.
Format.
GML.
v2.
prototype.writers.gml, feature:
OpenLayers.
Format.
GML.
v2.
prototype.writers.feature, ogc:
OpenLayers.
Format.
Filter.
v1_0_0.
prototype.writers.ogc}, CLASS_NAME:
"OpenLayers.Format.WFST.v1_0_0"});
OpenLayers.ElementsIndexer =
OpenLayers.Class({maxZIndex:
null, order:
null, indices:
null, compare:
null, initialize:
function(
a){this.compare =
a?
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER:
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER; this.clear()}, insert:
function(
a){this.exists(
a) && this.
remove(a); var
b =
a.id; this.determineZIndex(
a);
for (var
c = - 1,
d = this.order.length,
e; 1 <
d -
c; )
e = parseInt((
c +
d) / 2), 0 < this.compare(
this,
a,
OpenLayers.Util.getElement(
this.order[
e]))?
c =
e:
d =
e; this.order.splice(
d,
713 0,
b); this.indices[
b] = this.getZIndex(
a);
return this.getNextElement(
d)},
remove:
function(
a){
a =
a.id; var
b =
OpenLayers.Util.indexOf(this.order,
a); 0 <=
b && (this.order.splice(
b, 1),
delete this.indices[
a], this.maxZIndex = 0 < this.order.length?
this.indices[
this.order[
this.order.length - 1]]:0)}, clear:
function(){this.order = []; this.indices = {}; this.maxZIndex = 0}, exists:
function(
a){
return null != this.indices[
a.id]}, getZIndex:
function(
a){
return a._style.graphicZIndex}, determineZIndex:
function(
a){var
b =
a._style.graphicZIndex;
714 null ==
b?(
b = this.maxZIndex,
a._style.graphicZIndex =
b):
b >
this.maxZIndex && (
this.maxZIndex =
b)}, getNextElement:function(
a){
a += 1;
if (
a < this.order.length){var b = OpenLayers.Util.getElement(this.order[a]); void 0 == b && (b = this.getNextElement(a)); return b}
return null}, CLASS_NAME:
"OpenLayers.ElementsIndexer"});
715 OpenLayers.ElementsIndexer.IndexingMethods = {Z_ORDER:
function(
a,
b,
c){
b =
a.getZIndex(
b); var
d = 0;
c && (
a =
a.getZIndex(
c),
d =
b -
a);
return d}, Z_ORDER_DRAWING_ORDER:
function(
a,
b,
c){
a =
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
a,
b,
c);
c && 0 ==
a && (
a = 1);
return a}, Z_ORDER_Y_ORDER:
function(
a,
b,
c){
a =
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
a,
b,
c);
c && 0 ===
a && (
b =
c._boundsBottom -
b._boundsBottom,
a = 0 ===
b?1:
b);
return a}};
716 OpenLayers.Renderer.Elements =
OpenLayers.Class(
OpenLayers.Renderer, {rendererRoot:null, root:null, vectorRoot:null, textRoot:null, xmlns:null, xOffset:0, indexer:null, BACKGROUND_ID_SUFFIX:
"_background", LABEL_ID_SUFFIX:
"_label", LABEL_OUTLINE_SUFFIX:
"_outline", initialize:function(a, b){OpenLayers.Renderer.prototype.initialize.apply(this, arguments); this.rendererRoot = this.createRenderRoot(); this.root = this.createRoot(
"_root"); this.vectorRoot = this.createRoot(
"_vroot"); this.textRoot = this.createRoot(
"_troot"); this.root.appendChild(this.vectorRoot);
717 this.root.appendChild(this.textRoot); this.rendererRoot.appendChild(this.root); this.container.appendChild(this.rendererRoot); b && (b.zIndexing || b.yOrdering) && (this.indexer = new OpenLayers.ElementsIndexer(b.yOrdering))}, destroy:
function(){this.clear(); this.xmlns = this.root = this.rendererRoot = null; OpenLayers.Renderer.prototype.destroy.apply(this, arguments)}, clear:
function(){var a, b = this.vectorRoot; if (b)for (; a = b.firstChild; )b.removeChild(a); if (b = this.textRoot)for (; a = b.firstChild; )b.removeChild(a); this.indexer &&
718 this.indexer.clear()}, setExtent:
function(
a,
b){var c = OpenLayers.Renderer.prototype.setExtent.apply(this, arguments), d = this.getResolution(); if (this.map.baseLayer && this.map.baseLayer.wrapDateLine){var e, f = a.getWidth() / this.map.getExtent().getWidth(); a = a.scale(1 / f); f = this.map.getMaxExtent(); f.right > a.left && f.right < a.right?e = !0:f.left > a.left && f.left < a.right && (e = !1); if (e !== this.rightOfDateLine || b)c = !1, this.xOffset = !0 === e?f.getWidth() / d:0; this.rightOfDateLine = e}
return c}, getNodeType:
function(
a,
b){}, drawGeometry:
function(
a,
719 b,
c){var
d =
a.CLASS_NAME,
e = !0;
if (
"OpenLayers.Geometry.Collection" ==
d ||
"OpenLayers.Geometry.MultiPoint" ==
d ||
"OpenLayers.Geometry.MultiLineString" ==
d ||
"OpenLayers.Geometry.MultiPolygon" ==
d){
for (var
d = 0,
f =
a.components.length;
d <
f;
d++)
e = this.drawGeometry(
a.components[
d],
b,
c) &&
e;
return e}
d =
e = !1;
"none" !=
b.display && (
b.backgroundGraphic?this.redrawBackgroundNode(
a.id,
a,
b,
c):
d = !0,
e =
this.redrawNode(
a.id,
a,
b,
c)); !1 ==
e && (
b =
document.getElementById(
a.id)) && (
b._style.backgroundGraphic && (
d = !0),
b.parentNode.removeChild(
b));
720 d && (
b =
document.getElementById(
a.id +
this.BACKGROUND_ID_SUFFIX)) &&
b.parentNode.removeChild(
b);
return e}, redrawNode:
function(
a,
b,
c,
d){
c = this.applyDefaultSymbolizer(
c);
a = this.nodeFactory(
a, this.getNodeType(
b,
c));
a._featureId =
d;
a._boundsBottom =
b.getBounds().bottom;
a._geometryClass =
b.CLASS_NAME;
a._style =
c;
b = this.drawGeometryNode(
a,
b,
c);
if (!1 ===
b)
return!1;
a =
b.node; this.indexer?(
c = this.indexer.insert(
a))?this.vectorRoot.insertBefore(
a,
c):this.vectorRoot.appendChild(
a):
a.parentNode !== this.vectorRoot && this.vectorRoot.appendChild(
a);
721 this.postDraw(
a);
return b.complete}, redrawBackgroundNode:
function(
a,
b,
c,
d){
c =
OpenLayers.Util.extend({},
c);
c.externalGraphic =
c.backgroundGraphic;
c.graphicXOffset =
c.backgroundXOffset;
c.graphicYOffset =
c.backgroundYOffset;
c.graphicZIndex =
c.backgroundGraphicZIndex;
c.graphicWidth =
c.backgroundWidth ||
c.graphicWidth;
c.graphicHeight =
c.backgroundHeight ||
c.graphicHeight;
c.backgroundGraphic =
null;
c.backgroundXOffset =
null;
c.backgroundYOffset =
null;
c.backgroundGraphicZIndex =
null;
return this.redrawNode(
a + this.BACKGROUND_ID_SUFFIX,
722 b,
c,
null)}, drawGeometryNode:
function(
a,
b,
c){
c =
c ||
a._style; var
d = {isFilled:
void 0 ===
c.fill?!0:
c.fill, isStroked:
void 0 ===
c.stroke?!!
c.strokeWidth:
c.stroke},
e;
switch (
b.CLASS_NAME){
case "OpenLayers.Geometry.Point":!1 ===
c.graphic && (
d.isFilled = !1,
d.isStroked = !1);
e = this.drawPoint(
a,
b);
break;
case "OpenLayers.Geometry.LineString":
d.isFilled = !1;
e = this.drawLineString(
a,
b);
break;
case "OpenLayers.Geometry.LinearRing":
e = this.drawLinearRing(
a,
b);
break;
case "OpenLayers.Geometry.Polygon":
e = this.drawPolygon(
a,
b);
break;
723 case "OpenLayers.Geometry.Rectangle":
e = this.drawRectangle(
a,
b)}
a._options =
d;
return!1 !=
e?{node:this.setStyle(
a,
c,
d,
b), complete:
e}:!1}, postDraw:
function(
a){}, drawPoint:
function(
a,
b){}, drawLineString:
function(
a,
b){}, drawLinearRing:
function(
a,
b){}, drawPolygon:
function(
a,
b){}, drawRectangle:
function(
a,
b){}, drawCircle:
function(
a,
b){}, removeText:
function(
a){var
b =
document.getElementById(
a + this.LABEL_ID_SUFFIX);
b && this.textRoot.removeChild(
b); (
a =
document.getElementById(
a + this.LABEL_OUTLINE_SUFFIX)) && this.textRoot.removeChild(
a)},
724 getFeatureIdFromEvent:
function(
a){var
b =
a.target,
c =
b &&
b.correspondingUseElement;
return(
c?
c:
b ||
a.srcElement)._featureId}, eraseGeometry:
function(
a,
b){
if (
"OpenLayers.Geometry.MultiPoint" ==
a.CLASS_NAME ||
"OpenLayers.Geometry.MultiLineString" ==
a.CLASS_NAME ||
"OpenLayers.Geometry.MultiPolygon" ==
a.CLASS_NAME ||
"OpenLayers.Geometry.Collection" ==
a.CLASS_NAME)
for (var
c = 0,
d =
a.components.length;
c <
d;
c++)this.eraseGeometry(
a.components[
c],
b);
else(
c =
OpenLayers.Util.getElement(
a.id)) &&
c.parentNode && (
c.geometry && (
c.geometry.destroy(),
725 c.geometry =
null),
c.parentNode.removeChild(
c),
this.indexer &&
this.indexer.remove(
c),
c._style.backgroundGraphic && (
c =
OpenLayers.Util.getElement(
a.id +
this.BACKGROUND_ID_SUFFIX)) &&
c.parentNode &&
c.parentNode.removeChild(
c))}, nodeFactory:
function(
a,
b){var
c =
OpenLayers.Util.getElement(
a);
c?this.nodeTypeCompare(
c,
b) || (
c.parentNode.removeChild(
c),
c = this.nodeFactory(
a,
b)):
c = this.createNode(
b,
a);
return c}, nodeTypeCompare:
function(
a,
b){}, createNode:
function(
a,
b){}, moveRoot:
function(
a){var
b = this.
root;
a.root.parentNode ==
726 this.rendererRoot && (
b =
a.root);
b.parentNode.removeChild(
b);
a.rendererRoot.appendChild(
b)}, getRenderLayerId:
function(){
return this.
root.parentNode.parentNode.id}, isComplexSymbol:
function(
a){
return"circle" !=
a && !!
a}, CLASS_NAME:
"OpenLayers.Renderer.Elements"});
OpenLayers.Control.ArgParser =
OpenLayers.Class(
OpenLayers.Control, {center:null, zoom:null, layers:null, displayProjection:null, getParameters:function(a){a = a || window.location.href; var b = OpenLayers.Util.getParameters(a), c = a.indexOf(
"#"); 0 < c && (a =
"?" + a.substring(c + 1, a.length), OpenLayers.Util.extend(b, OpenLayers.Util.getParameters(a))); return b}, setMap:
function(
a){OpenLayers.Control.prototype.setMap.apply(this, arguments); for (var b = 0, c = this.map.controls.length; b < c; b++){var d = this.map.controls[b]; if (d != this &&
727 "OpenLayers.Control.ArgParser" == d.CLASS_NAME){d.displayProjection != this.displayProjection && (this.displayProjection = d.displayProjection); break}}
b ==
this.map.controls.length && (
b =
this.getParameters(),
b.layers && (
this.layers =
b.layers,
this.map.events.register(
"addlayer",
this,
this.configureLayers),
this.configureLayers()),
b.lat &&
b.lon && (
this.center =
new OpenLayers.LonLat(parseFloat(
b.lon), parseFloat(
b.lat)),
b.zoom && (
this.zoom = parseFloat(
b.zoom)),
this.map.events.register(
"changebaselayer",
this,
this.setCenter),
728 this.setCenter()))}, setCenter:
function(){this.map.baseLayer && (this.map.events.unregister(
"changebaselayer",
this, this.setCenter), this.displayProjection && this.center.transform(
this.displayProjection,
this.map.getProjectionObject()),
this.map.setCenter(
this.center,
this.zoom))}, configureLayers:
function(){
if (this.layers.length ==
this.map.layers.length){this.map.events.unregister(
"addlayer",
this, this.configureLayers);
for (var
a = 0,
b = this.layers.length;
a <
b;
a++){var
c = this.map.layers[
a],
d = this.layers.charAt(
a);
729 "B" ==
d?this.map.setBaseLayer(
c):
"T" !=
d &&
"F" !=
d ||
c.setVisibility(
"T" ==
d)}}}, CLASS_NAME:
"OpenLayers.Control.ArgParser"});
OpenLayers.Control.Permalink =
OpenLayers.Class(
OpenLayers.Control, {argParserClass:OpenLayers.Control.ArgParser, element:null, anchor:!1, base:
"", displayProjection:null, initialize:function(a, b, c){null === a ||
"object" != typeof a || OpenLayers.Util.isElement(a)?(OpenLayers.Control.prototype.initialize.apply(this, [c]), this.element = OpenLayers.Util.getElement(a), this.base = b || document.location.href):(this.base = document.location.href, OpenLayers.Control.prototype.initialize.apply(this, [a]), null != this.element && (this.element =
730 OpenLayers.Util.getElement(this.element)))}, destroy:
function(){this.element && this.element.parentNode == this.div && (this.div.removeChild(this.element), this.element = null); this.map && this.map.events.unregister(
"moveend", this, this.updateLink); OpenLayers.Control.prototype.destroy.apply(this, arguments)}, setMap:
function(
a){OpenLayers.Control.prototype.setMap.apply(this, arguments); for (var b = 0, c = this.map.controls.length; b < c; b++){var d = this.map.controls[b]; if (d.CLASS_NAME == this.argParserClass.CLASS_NAME){d.displayProjection !=
731 this.displayProjection && (this.displayProjection = d.displayProjection); break}}
b ==
this.map.controls.length &&
this.map.addControl(
new this.argParserClass({displayProjection:this.displayProjection}))}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments); this.element || this.anchor || (this.element =
document.createElement(
"a"), this.element.innerHTML =
OpenLayers.i18n(
"Permalink"),
this.element.href =
"",
this.div.appendChild(
this.element)); this.map.events.on({moveend:this.updateLink, changelayer:this.updateLink,
732 changebaselayer:this.updateLink, scope:
this}); this.updateLink();
return this.div}, updateLink:
function(){var
a = this.anchor?
"#":
"?",
b = this.base,
c =
null; - 1 !=
b.indexOf(
"#") && !1 == this.anchor && (
c =
b.substring(
b.indexOf(
"#"),
b.length)); - 1 !=
b.indexOf(
a) && (
b =
b.substring(0,
b.indexOf(
a)));
b =
b.split(
"#")[0] +
a +
OpenLayers.Util.getParameterString(this.createParams());
c && (
b +=
c); this.anchor && !this.element?window.location.href =
b:this.element.href =
b}, createParams:
function(
a,
b,
c){
a =
a || this.map.getCenter(); var
d =
OpenLayers.Util.getParameters(this.base);
733 if (
a)
for (
d.zoom =
b ||
this.map.getZoom(),
b =
a.lat,
a =
a.lon,
this.displayProjection && (
b =
OpenLayers.Projection.transform({x:a, y:b},
this.map.getProjectionObject(),
this.displayProjection),
a =
b.x,
b =
b.y),
d.lat =
Math.round(1E5 *
b) / 1E5,
d.lon =
Math.round(1E5 *
a) / 1E5,
c =
c ||
this.map.layers,
d.layers =
"",
a = 0,
b =
c.length;
a <
b;
a++){var
e =
c[
a];
d.layers =
e.isBaseLayer?
d.layers + (
e == this.map.baseLayer?
"B":
"0"):
d.layers + (
e.getVisibility()?
"T":
"F")}return
d}, CLASS_NAME:
"OpenLayers.Control.Permalink"});
OpenLayers.Layer.TMS =
OpenLayers.Class(
OpenLayers.Layer.Grid, {serviceVersion:
"1.0.0", layername:null, type:null, isBaseLayer:!0, tileOrigin:null, serverResolutions:null, zoomOffset:0, initialize:function(a, b, c){var d = []; d.push(a, b, {}, c); OpenLayers.Layer.Grid.prototype.initialize.apply(this, d)},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.TMS(this.name, this.url, this.getOptions())); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this, [a])}, getURL:
function(
a){a = this.adjustBounds(a); var b = this.getServerResolution(),
734 c = Math.round((a.left - this.tileOrigin.lon) / (b * this.tileSize.w)); a = Math.round((a.bottom - this.tileOrigin.lat) / (b * this.tileSize.h)); b = this.getServerZoom(); c = this.serviceVersion +
"/" + this.layername +
"/" + b +
"/" + c +
"/" + a +
"." + this.type; a = this.url; OpenLayers.Util.isArray(a) && (a = this.selectUrl(c, a)); return a + c}, setMap:
function(
a){OpenLayers.Layer.Grid.prototype.setMap.apply(this, arguments); this.tileOrigin || (this.tileOrigin = new OpenLayers.LonLat(this.map.maxExtent.left, this.map.maxExtent.bottom))}, CLASS_NAME:
"OpenLayers.Layer.TMS"});
OpenLayers.Format.WCSCapabilities =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.1.0", CLASS_NAME:
"OpenLayers.Format.WCSCapabilities"});
OpenLayers.Format.WCSCapabilities.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {regExes:{trimSpace:/^\s*|\s*$/g, splitSpace:/\s+/}, defaultPrefix:
"wcs", read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = {};
this.readNode(
a,
b);
return b}, CLASS_NAME:
"OpenLayers.Format.WCSCapabilities.v1"});
OpenLayers.Format.WCSCapabilities.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.WCSCapabilities.v1, {namespaces:{wcs:
"http://www.opengis.net/wcs", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance", ows:
"http://www.opengis.net/ows"}, errorProperty:
"service", readers:{wcs:{WCS_Capabilities:function(a, b){this.readChildNodes(a, b)}, Service:function(a, b){b.service = {}; this.readChildNodes(a, b.service)}, name:function(a, b){b.name = this.getChildValue(a)}, label:function(a, b){b.label =
735 this.getChildValue(a)}, keywords:function(a, b){b.keywords = []; this.readChildNodes(a, b.keywords)}, keyword:function(a, b){b.push(this.getChildValue(a))}, responsibleParty:function(a, b){b.responsibleParty = {}; this.readChildNodes(a, b.responsibleParty)}, individualName:function(a, b){b.individualName = this.getChildValue(a)}, organisationName:function(a, b){b.organisationName = this.getChildValue(a)}, positionName:function(a, b){b.positionName = this.getChildValue(a)}, contactInfo:function(a, b){b.contactInfo = {}; this.readChildNodes(a,
736 b.contactInfo)}, phone:function(a, b){b.phone = {}; this.readChildNodes(a, b.phone)}, voice:function(a, b){b.voice = this.getChildValue(a)}, facsimile:function(a, b){b.facsimile = this.getChildValue(a)}, address:function(a, b){b.address = {}; this.readChildNodes(a, b.address)}, deliveryPoint:function(a, b){b.deliveryPoint = this.getChildValue(a)}, city:function(a, b){b.city = this.getChildValue(a)}, postalCode:function(a, b){b.postalCode = this.getChildValue(a)}, country:function(a, b){b.country = this.getChildValue(a)}, electronicMailAddress:function(a,
737 b){b.electronicMailAddress = this.getChildValue(a)}, fees:function(a, b){b.fees = this.getChildValue(a)}, accessConstraints:function(a, b){b.accessConstraints = this.getChildValue(a)}, ContentMetadata:function(a, b){b.contentMetadata = []; this.readChildNodes(a, b.contentMetadata)}, CoverageOfferingBrief:function(a, b){var c = {}; this.readChildNodes(a, c); b.push(c)}, name:function(a, b){b.name = this.getChildValue(a)}, label:function(a, b){b.label = this.getChildValue(a)}, lonLatEnvelope:function(a, b){var c = this.getElementsByTagNameNS(a,
738 "http://www.opengis.net/gml",
"pos"); if (2 == c.length){var d = {}, e = {}; OpenLayers.Format.GML.v3.prototype.readers.gml.pos.apply(this, [c[0], d]); OpenLayers.Format.GML.v3.prototype.readers.gml.pos.apply(this, [c[1], e]); b.lonLatEnvelope = {}; b.lonLatEnvelope.srsName = a.getAttribute(
"srsName"); b.lonLatEnvelope.min = d.points[0]; b.lonLatEnvelope.max = e.points[0]}}}}, CLASS_NAME:
"OpenLayers.Format.WCSCapabilities.v1_0_0"});
OpenLayers.Strategy.Fixed =
OpenLayers.Class(
OpenLayers.Strategy, {preload:!1, activate:function(){var a = OpenLayers.Strategy.prototype.activate.apply(this, arguments); if (a)if (this.layer.events.on({refresh:this.load, scope:this}), !0 == this.layer.visibility || this.preload)this.load(); else this.layer.events.on({visibilitychanged:this.load, scope:this}); return a}, deactivate:
function(){var a = OpenLayers.Strategy.prototype.deactivate.call(this); a && this.layer.events.un({refresh:this.load, visibilitychanged:this.load,
739 scope:this});
return a},
load:
function(
a){var
b = this.layer;
b.events.triggerEvent(
"loadstart", {filter:
b.filter});
b.protocol.read(
OpenLayers.Util.applyDefaults({callback:this.merge, filter:b.filter, scope:this},
a));
b.events.un({visibilitychanged:this.
load, scope:
this})}, merge:
function(
a){var
b = this.layer;
b.destroyFeatures(); var
c =
a.features;
if (
c && 0 <
c.length){var
d =
b.projection,
e =
b.map.getProjectionObject();
if (!
e.equals(
d))
for (var
f,
g = 0,
h =
c.length;
g <
h; ++
g)(
f =
c[
g].geometry) &&
f.transform(
d,
e);
b.addFeatures(
c)}
b.events.triggerEvent(
"loadend",
740{response:
a})}, CLASS_NAME:
"OpenLayers.Strategy.Fixed"});
OpenLayers.Control.Zoom =
OpenLayers.Class(
OpenLayers.Control, {zoomInText:
"+", zoomInId:
"olZoomInLink", zoomOutText:
"\u2212", zoomOutId:
"olZoomOutLink", draw:function(){var
a =
OpenLayers.Control.prototype.draw.apply(
this),
b = this.getOrCreateLinks(
a),
c =
b.zoomIn,
b =
b.zoomOut,
d =
this.map.events;
b.parentNode !==
a && (
d =
this.events,
d.attachToElement(
b.parentNode));
d.register(
"buttonclick",
this,
this.onZoomClick);
this.zoomInLink =
c;
this.zoomOutLink =
b;
return a}, getOrCreateLinks:
function(
a){var
b =
document.getElementById(this.zoomInId),
741 c =
document.getElementById(this.zoomOutId);
b || (
b =
document.createElement(
"a"),
b.href =
"#zoomIn",
b.appendChild(
document.createTextNode(
this.zoomInText)),
b.className =
"olControlZoomIn",
a.appendChild(
b));
OpenLayers.Element.addClass(
b,
"olButton");
c || (
c =
document.createElement(
"a"),
c.href =
"#zoomOut",
c.appendChild(
document.createTextNode(
this.zoomOutText)),
c.className =
"olControlZoomOut",
a.appendChild(
c));
OpenLayers.Element.addClass(
c,
"olButton");
return{zoomIn:
b, zoomOut:
c}}, onZoomClick:
function(
a){
a =
a.buttonElement;
742 a === this.zoomInLink?this.map.zoomIn():
a === this.zoomOutLink && this.map.zoomOut()}, destroy:
function(){this.map && this.map.events.unregister(
"buttonclick",
this, this.onZoomClick);
delete this.zoomInLink;
delete this.zoomOutLink;
OpenLayers.Control.prototype.destroy.apply(
this)}, CLASS_NAME:
"OpenLayers.Control.Zoom"});
OpenLayers.Layer.PointTrack =
OpenLayers.Class(
OpenLayers.Layer.Vector, {dataFrom:null, styleFrom:null, addNodes:function(
a,
b){
if (2 >
a.length)
throw Error(
"At least two point features have to be added to create a line from");
for (var
c =
Array(
a.length - 1),
d,
e,
f,
g = 0,
h =
a.length;
g <
h;
g++){d = a[g]; f = d.geometry; if (!f)f = d.lonlat, f = new OpenLayers.Geometry.Point(f.lon, f.lat); else if (
"OpenLayers.Geometry.Point" != f.CLASS_NAME)throw new TypeError(
"Only features with point geometries are supported."); if (0 < g){d = null != this.dataFrom?
743 a[g + this.dataFrom].data || a[g + this.dataFrom].attributes:null; var k = null != this.styleFrom?a[g + this.styleFrom].style:null; e = new OpenLayers.Geometry.LineString([e, f]); c[g - 1] = new OpenLayers.Feature.Vector(e, d, k)}
e =
f}this.addFeatures(
c,
b)}, CLASS_NAME:
"OpenLayers.Layer.PointTrack"});
OpenLayers.Layer.PointTrack.SOURCE_NODE = - 1;
OpenLayers.Layer.PointTrack.TARGET_NODE = 0;
OpenLayers.Layer.PointTrack.dataFrom = {SOURCE_NODE: - 1, TARGET_NODE:0};
OpenLayers.Protocol.WFS =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Protocol.WFS.DEFAULTS); var
b =
OpenLayers.Protocol.WFS[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported WFS version: " +
a.version;
return new b(
a)};
744 OpenLayers.Protocol.WFS.fromWMSLayer =
function(
a,
b){var
c,
d;
c =
a.params.LAYERS;
c = (
OpenLayers.Util.isArray(
c)?
c[0]:
c).split(
":"); 1 <
c.length && (
d =
c[0]);
c =
c.pop();
d = {url:
a.url, featureType:
c, featurePrefix:
d, srsName:
a.projection &&
a.projection.getCode() ||
a.map &&
a.map.getProjectionObject().getCode(),
version:
"1.1.0"};
return new OpenLayers.Protocol.WFS(
OpenLayers.Util.applyDefaults(
b,
d))};
OpenLayers.Protocol.WFS.DEFAULTS = {
version:
"1.0.0"};
OpenLayers.Layer.Markers =
OpenLayers.Class(
OpenLayers.Layer, {isBaseLayer:!1, markers:null, drawn:!1, initialize:function(
a,
b){
OpenLayers.Layer.prototype.initialize.apply(
this, arguments); this.markers = []}, destroy:
function(){this.clearMarkers(); this.markers =
null;
OpenLayers.Layer.prototype.destroy.apply(
this, arguments)}, setOpacity:
function(
a){
if (
a != this.opacity){this.opacity =
a;
a = 0;
for (var
b = this.markers.length;
a <
b;
a++)this.markers[
a].setOpacity(this.opacity)}},
moveTo:
function(
a,
b,
c){
OpenLayers.Layer.prototype.moveTo.apply(
this,
745 arguments);
if (
b || !this.drawn){
for (var
d = 0,
e = this.markers.length;
d <
e;
d++)this.drawMarker(this.markers[
d]); this.drawn = !0}}, addMarker:
function(
a){this.markers.push(
a); 1 > this.opacity &&
a.setOpacity(this.opacity); this.map && this.map.getExtent() && (
a.map = this.map, this.drawMarker(
a))}, removeMarker:
function(
a){this.markers && this.markers.length && (
OpenLayers.Util.removeItem(this.markers,
a),
a.erase())}, clearMarkers:
function(){
if (
null != this.markers)
for (; 0 < this.markers.length; )this.removeMarker(this.markers[0])},
746 drawMarker:
function(
a){var
b = this.map.getLayerPxFromLonLat(
a.lonlat);
null ==
b?
a.display(!1):
a.isDrawn()?
a.icon &&
a.icon.moveTo(
b):(
a =
a.draw(
b), this.div.appendChild(
a))}, getDataExtent:
function(){var
a =
null;
if (this.markers && 0 < this.markers.length)
for (var
a =
new OpenLayers.Bounds,
b = 0,
c =
this.markers.length;
b <
c;
b++)
a.extend(this.markers[
b].lonlat);
return a}, CLASS_NAME:
"OpenLayers.Layer.Markers"});
OpenLayers.Control.Pan =
OpenLayers.Class(
OpenLayers.Control.Button, {slideFactor:50, slideRatio:null, direction:null, initialize:function(
a,
b){this.direction =
a; this.CLASS_NAME += this.direction;
OpenLayers.Control.prototype.initialize.apply(
this, [
b])}, trigger:
function(){
if (this.map){var
a =
OpenLayers.Function.bind(
function(
a){
return this.slideRatio?this.map.getSize()[
a] * this.slideRatio:this.slideFactor},
this);
switch (this.direction){
case OpenLayers.Control.Pan.NORTH:this.map.pan(0, -
a(
"h"));
break;
case OpenLayers.Control.Pan.SOUTH:this.map.pan(0,
747 a(
"h"));
break;
case OpenLayers.Control.Pan.WEST:this.map.pan( -
a(
"w"), 0);
break;
case OpenLayers.Control.Pan.EAST:this.map.pan(
a(
"w"), 0)}}}, CLASS_NAME:
"OpenLayers.Control.Pan"});
OpenLayers.Control.Pan.NORTH =
"North";
OpenLayers.Control.Pan.SOUTH =
"South";
OpenLayers.Control.Pan.EAST =
"East";
OpenLayers.Control.Pan.WEST =
"West";
OpenLayers.Format.CSWGetDomain =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Format.CSWGetDomain.DEFAULTS); var
b =
OpenLayers.Format.CSWGetDomain[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported CSWGetDomain version: " +
a.version;
return new b(
a)};
OpenLayers.Format.CSWGetDomain.DEFAULTS = {
version:
"2.0.2"};
OpenLayers.Format.CSWGetDomain.v2_0_2 =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance", csw:
"http://www.opengis.net/cat/csw/2.0.2"}, defaultPrefix:
"csw",
version:
"2.0.2", schemaLocation:
"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd", PropertyName:
null, ParameterName:
null, read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
748 a.nodeType && (
a =
a.documentElement); var
b = {}; this.readNode(
a,
b);
return b}, readers:{csw:{GetDomainResponse:
function(
a,
b){this.readChildNodes(
a,
b)}, DomainValues:
function(
a,
b){
OpenLayers.Util.isArray(
b.DomainValues) || (
b.DomainValues = []);
for (var
c =
a.attributes,
d = {},
e = 0,
f =
c.length;
e <
f; ++
e)
d[
c[
e].name] =
c[
e].nodeValue; this.readChildNodes(
a,
d);
b.DomainValues.push(
d)}, PropertyName:
function(
a,
b){
b.PropertyName = this.getChildValue(
a)}, ParameterName:
function(
a,
b){
b.ParameterName = this.getChildValue(
a)}, ListOfValues:
function(
a,
749 b){
OpenLayers.Util.isArray(
b.ListOfValues) || (
b.ListOfValues = []); this.readChildNodes(
a,
b.ListOfValues)}, Value:
function(
a,
b){
for (var
c =
a.attributes,
d = {},
e = 0,
f =
c.length;
e <
f; ++
e)
d[
c[
e].name] =
c[
e].nodeValue;
d.value = this.getChildValue(
a);
b.push({Value:
d})}, ConceptualScheme:
function(
a,
b){
b.ConceptualScheme = {}; this.readChildNodes(
a,
b.ConceptualScheme)}, Name:
function(
a,
b){
b.Name = this.getChildValue(
a)}, Document:
function(
a,
b){
b.Document = this.getChildValue(
a)}, Authority:
function(
a,
b){
b.Authority = this.getChildValue(
a)},
750 RangeOfValues:
function(
a,
b){
b.RangeOfValues = {}; this.readChildNodes(
a,
b.RangeOfValues)}, MinValue:
function(
a,
b){
for (var
c =
a.attributes,
d = {},
e = 0,
f =
c.length;
e <
f; ++
e)
d[
c[
e].name] =
c[
e].nodeValue;
d.value = this.getChildValue(
a);
b.MinValue =
d}, MaxValue:
function(
a,
b){
for (var
c =
a.attributes,
d = {},
e = 0,
f =
c.length;
e <
f; ++
e)
d[
c[
e].name] =
c[
e].nodeValue;
d.value = this.getChildValue(
a);
b.MaxValue =
d}}}, write:
function(
a){
a = this.writeNode(
"csw:GetDomain",
a);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, writers:{csw:{GetDomain:
function(
a){var
b =
751 this.createElementNSPlus(
"csw:GetDomain", {attributes:{service:
"CSW",
version:this.
version}});
a.PropertyName || this.PropertyName?this.writeNode(
"csw:PropertyName",
a.PropertyName ||
this.PropertyName,
b):(
a.ParameterName ||
this.ParameterName) &&
this.writeNode(
"csw:ParameterName",
a.ParameterName ||
this.ParameterName,
b); this.readChildNodes(
b,
a);
return b}, PropertyName:
function(
a){
return this.createElementNSPlus(
"csw:PropertyName", {value:
a})}, ParameterName:
function(
a){
return this.createElementNSPlus(
"csw:ParameterName",
752{value:
a})}}}, CLASS_NAME:
"OpenLayers.Format.CSWGetDomain.v2_0_2"});
OpenLayers.Format.ArcXML.Features =
OpenLayers.Class(
OpenLayers.Format.XML, {read:function(
a){
return(
new OpenLayers.Format.ArcXML).read(
a).features.feature}});
OpenLayers.Control.Snapping =
OpenLayers.Class(
OpenLayers.Control, {
DEFAULTS:{tolerance:10, node:!0, edge:!0, vertex:!0}, greedy:!0, precedence:[
"node",
"vertex",
"edge"], resolution:
null, geoToleranceCache:
null, layer:
null, feature:
null, point:
null, initialize:
function(
a){
OpenLayers.Control.prototype.initialize.apply(
this, [
a]); this.options =
a || {}; this.options.layer && this.setLayer(this.options.layer);
a =
OpenLayers.Util.extend({}, this.options.defaults); this.
defaults =
OpenLayers.Util.applyDefaults(
a, this.
DEFAULTS); this.setTargets(this.options.targets);
753 0 === this.targets.length && this.layer && this.addTargetLayer(this.layer); this.geoToleranceCache = {}}, setLayer:
function(
a){this.active?(this.deactivate(), this.layer =
a, this.activate()):
this.layer =
a}, setTargets:function(
a){this.targets = [];
if (
a &&
a.length)
for (var
b,
c = 0,
d =
a.length;
c <
d; ++
c)
b =
a[
c],
b instanceof
OpenLayers.Layer.Vector?
this.addTargetLayer(
b):
this.addTarget(
b)}, addTargetLayer:
function(
a){this.addTarget({layer:
a})}, addTarget:
function(
a){
a =
OpenLayers.Util.applyDefaults(
a, this.
defaults);
a.nodeTolerance =
754 a.nodeTolerance ||
a.tolerance;
a.vertexTolerance =
a.vertexTolerance ||
a.tolerance;
a.edgeTolerance =
a.edgeTolerance ||
a.tolerance; this.targets.push(
a)}, removeTargetLayer:
function(
a){
for (var
b,
c = this.targets.length - 1; 0 <=
c; --
c)
b = this.targets[
c],
b.layer ===
a && this.removeTarget(
b)}, removeTarget:
function(
a){
return OpenLayers.Util.removeItem(this.targets,
a)}, activate:
function(){var
a =
OpenLayers.Control.prototype.activate.call(
this);
if (
a && this.layer && this.layer.events)this.layer.events.on({sketchstarted:this.onSketchModified,
755 sketchmodified:this.onSketchModified, vertexmodified:this.onVertexModified, scope:
this});
return a}, deactivate:
function(){var
a =
OpenLayers.Control.prototype.deactivate.call(
this);
a && this.layer && this.layer.events && this.layer.events.un({sketchstarted:this.onSketchModified, sketchmodified:this.onSketchModified, vertexmodified:this.onVertexModified, scope:
this}); this.point = this.feature =
null;
return a}, onSketchModified:
function(
a){this.feature =
a.feature; this.considerSnapping(
a.vertex,
a.vertex)}, onVertexModified:
function(
a){this.feature =
756 a.feature; var
b = this.layer.map.getLonLatFromViewPortPx(
a.pixel); this.considerSnapping(
a.vertex,
new OpenLayers.Geometry.Point(
b.lon,
b.lat))}, considerSnapping:
function(
a,
b){
for (var
c = {rank:
Number.POSITIVE_INFINITY, dist:
Number.POSITIVE_INFINITY,
x:
null,
y:
null},
d = !1,
e,
f,
g = 0,
h = this.targets.length;
g <
h; ++
g)
if (
f = this.targets[
g],
e = this.testTarget(
f,
b))
if (this.greedy){
c =
e;
c.target =
f;
d = !0;
break}
else if (
e.rank <
c.rank ||
e.rank ===
c.rank &&
e.dist <
c.dist)
c =
e,
c.target =
f,
d = !0;
d && (!1 !== this.events.triggerEvent(
"beforesnap",
757{point:
a,
x:
c.x,
y:
c.y, distance:
c.dist, layer:
c.target.layer, snapType:this.precedence[
c.rank]})?(
a.x =
c.x,
a.y =
c.y, this.point =
a, this.events.triggerEvent(
"snap", {point:
a, snapType:this.precedence[
c.rank], layer:
c.target.layer, distance:
c.dist})):
d = !1); this.point && !
d && (
a.x =
b.x,
a.y =
b.y, this.point =
null, this.events.triggerEvent(
"unsnap", {point:
a}))}, testTarget:
function(
a,
b){var
c = this.layer.map.getResolution();
if (
"minResolution"in
a &&
c < a.minResolution || "maxResolution"in a && c >=
a.maxResolution)
return null;
for (var
c =
758{node:this.getGeoTolerance(
a.nodeTolerance,
c), vertex:this.getGeoTolerance(
a.vertexTolerance,
c), edge:this.getGeoTolerance(
a.edgeTolerance,
c)},
d =
Math.max(
c.node,
c.vertex,
c.edge),
e = {rank:Number.POSITIVE_INFINITY, dist:Number.POSITIVE_INFINITY},
f = !1,
g =
a.layer.features,
h,
k,
l,
m,
n,
p,
q =
this.precedence.length,
r =
new OpenLayers.LonLat(
b.x,
b.y),
s = 0,
t =
g.length;
s <
t; ++
s)
if (
h =
g[
s],
h !== this.feature && (!
h._sketch &&
h.state !==
OpenLayers.State.DELETE && (!
a.filter ||
a.filter.evaluate(
h))) &&
h.atPoint(
r,
d,
d))
for (var
u = 0,
v =
Math.min(
e.rank +
759 1,
q);
u <
v; ++
u)
if (
k = this.precedence[
u],
a[
k])
if (
"edge" ===
k){
if (
l =
h.geometry.distanceTo(
b, {details:!0}),
n =
l.distance,
n <=
c[
k] &&
n <
e.dist){
e = {rank:
u, dist:
n,
x:
l.x0,
y:
l.y0};
f = !0;
break}}
else{
l =
h.geometry.getVertices(
"node" ===
k);
p = !1;
for (var
w = 0,
x =
l.length;
w <
x; ++
w)
m =
l[
w],
n =
m.distanceTo(
b),
n <=
c[
k] && (
u <
e.rank ||
u ===
e.rank &&
n <
e.dist) && (
e = {rank:
u, dist:
n,
x:
m.x,
y:
m.y},
p =
f = !0);
if (
p)
break}
return f?
e:
null}, getGeoTolerance:
function(
a,
b){
b !== this.resolution && (this.resolution =
b, this.geoToleranceCache = {}); var
c = this.geoToleranceCache[
a];
760 void 0 ===
c && (
c =
a *
b, this.geoToleranceCache[
a] =
c);
return c}, destroy:
function(){this.active && this.deactivate();
delete this.layer;
delete this.targets;
OpenLayers.Control.prototype.destroy.call(
this)}, CLASS_NAME:
"OpenLayers.Control.Snapping"});
OpenLayers.Format.OWSCommon.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.OWSCommon.v1, {
namespaces:{ows:
"http://www.opengis.net/ows/1.1", xlink:
"http://www.w3.org/1999/xlink"}, readers:{ows:
OpenLayers.Util.applyDefaults({ExceptionReport:
function(
a,
b){
b.exceptionReport = {
version:
a.getAttribute(
"version"), language:
a.getAttribute(
"xml:lang"), exceptions:[]}; this.readChildNodes(
a,
b.exceptionReport)}, AllowedValues:
function(
a,
b){
b.allowedValues = {}; this.readChildNodes(
a,
b.allowedValues)}, AnyValue:
function(
a,
b){
b.anyValue =
761 !0}, DataType:
function(
a,
b){
b.dataType = this.getChildValue(
a)}, Range:
function(
a,
b){
b.range = {}; this.readChildNodes(
a,
b.range)}, MinimumValue:
function(
a,
b){
b.minValue = this.getChildValue(
a)}, MaximumValue:
function(
a,
b){
b.maxValue = this.getChildValue(
a)}, Identifier:
function(
a,
b){
b.identifier = this.getChildValue(
a)}, SupportedCRS:
function(
a,
b){
b.supportedCRS = this.getChildValue(
a)}},
OpenLayers.Format.OWSCommon.v1.prototype.readers.ows)}, writers:{ows:
OpenLayers.Util.applyDefaults({Range:
function(
a){var
b = this.createElementNSPlus(
"ows:Range",
762{attributes:{
"ows:rangeClosure":
a.closure}}); this.writeNode(
"ows:MinimumValue",
a.minValue,
b); this.writeNode(
"ows:MaximumValue",
a.maxValue,
b);
return b}, MinimumValue:
function(
a){
return this.createElementNSPlus(
"ows:MinimumValue", {value:
a})}, MaximumValue:
function(
a){
return this.createElementNSPlus(
"ows:MaximumValue", {value:
a})}, Value:
function(
a){
return this.createElementNSPlus(
"ows:Value", {value:
a})}},
OpenLayers.Format.OWSCommon.v1.prototype.writers.ows)}, CLASS_NAME:
"OpenLayers.Format.OWSCommon.v1_1_0"});
OpenLayers.Format.WCSGetCoverage =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{ows:
"http://www.opengis.net/ows/1.1", wcs:
"http://www.opengis.net/wcs/1.1", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, VERSION:
"1.1.2", schemaLocation:
"http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd", write:
function(
a){
a = this.writeNode(
"wcs:GetCoverage",
763 a); this.setAttributeNS(
a, this.
namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, writers:{wcs:{GetCoverage:
function(
a){var
b = this.createElementNSPlus(
"wcs:GetCoverage", {attributes:{
version:
a.version || this.VERSION, service:
"WCS"}}); this.writeNode(
"ows:Identifier",
a.identifier,
b); this.writeNode(
"wcs:DomainSubset",
a.domainSubset,
b); this.writeNode(
"wcs:Output",
a.output,
b);
return b}, DomainSubset:
function(
a){var
b = this.createElementNSPlus(
"wcs:DomainSubset",
764{}); this.writeNode(
"ows:BoundingBox",
a.boundingBox,
b);
a.temporalSubset && this.writeNode(
"wcs:TemporalSubset",
a.temporalSubset,
b);
return b}, TemporalSubset:
function(
a){
for (var
b = this.createElementNSPlus(
"wcs:TemporalSubset", {}),
c = 0,
d =
a.timePeriods.length;
c <
d; ++
c)this.writeNode(
"wcs:TimePeriod",
a.timePeriods[
c],
b);
return b}, TimePeriod:
function(
a){var
b = this.createElementNSPlus(
"wcs:TimePeriod", {}); this.writeNode(
"wcs:BeginPosition",
a.begin,
b); this.writeNode(
"wcs:EndPosition",
a.end,
b);
a.resolution && this.writeNode(
"wcs:TimeResolution",
765 a.resolution,
b);
return b}, BeginPosition:
function(
a){
return this.createElementNSPlus(
"wcs:BeginPosition", {value:
a})}, EndPosition:
function(
a){
return this.createElementNSPlus(
"wcs:EndPosition", {value:
a})}, TimeResolution:
function(
a){
return this.createElementNSPlus(
"wcs:TimeResolution", {value:
a})}, Output:
function(
a){var
b = this.createElementNSPlus(
"wcs:Output", {attributes:{format:
a.format, store:
a.store}});
a.gridCRS && this.writeNode(
"wcs:GridCRS",
a.gridCRS,
b);
return b}, GridCRS:
function(
a){var
b = this.createElementNSPlus(
"wcs:GridCRS",
766{}); this.writeNode(
"wcs:GridBaseCRS",
a.baseCRS,
b);
a.type && this.writeNode(
"wcs:GridType",
a.type,
b);
a.origin && this.writeNode(
"wcs:GridOrigin",
a.origin,
b); this.writeNode(
"wcs:GridOffsets",
a.offsets,
b);
a.CS && this.writeNode(
"wcs:GridCS",
a.CS,
b);
return b}, GridBaseCRS:
function(
a){
return this.createElementNSPlus(
"wcs:GridBaseCRS", {value:
a})}, GridOrigin:
function(
a){
return this.createElementNSPlus(
"wcs:GridOrigin", {value:
a})}, GridType:
function(
a){
return this.createElementNSPlus(
"wcs:GridType", {value:
a})}, GridOffsets:
function(
a){
return this.createElementNSPlus(
"wcs:GridOffsets",
767{value:
a})}, GridCS:
function(
a){
return this.createElementNSPlus(
"wcs:GridCS", {value:
a})}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows}, CLASS_NAME:
"OpenLayers.Format.WCSGetCoverage"});
OpenLayers.Format.KML =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{kml:
"http://www.opengis.net/kml/2.2", gx:
"http://www.google.com/kml/ext/2.2"}, kmlns:
"http://earth.google.com/kml/2.0", placemarksDesc:
"No description available", foldersName:
"OpenLayers export", foldersDesc:
"Exported on " +
new Date, extractAttributes:!0, kvpAttributes:!1, extractStyles:!1, extractTracks:!1, trackAttributes:
null, internalns:
null, features:
null, styles:
null, styleBaseUrl:
"", fetched:
null, maxDepth:0, initialize:
function(
a){this.regExes =
768{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g, kmlColor:/(\
w{2})(\
w{2})(\
w{2})(\
w{2})/, kmlIconPalette:/
root:\/\/icons\/palette-(\
d+)(\.\
w+)/, straightBracket:/\
$\[(.*?)\]/
g}; this.externalProjection =
new OpenLayers.Projection(
"EPSG:4326");
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a])}, read:
function(
a){this.features = []; this.styles = {}; this.fetched = {};
return this.parseData(
a, {depth:0, styleBaseUrl:this.styleBaseUrl})}, parseData:
function(
a,
b){
"string" == typeof
a &&
769 (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
for (var
c = [
"Link",
"NetworkLink",
"Style",
"StyleMap",
"Placemark"],
d = 0,
e =
c.length;
d <
e; ++
d){var
f =
c[
d],
g = this.getElementsByTagNameNS(
a,
"*",
f);
if (0 !=
g.length)
switch (
f.toLowerCase()){
case "link":
case "networklink":this.parseLinks(
g,
b);
break;
case "style":this.extractStyles && this.parseStyles(
g,
b);
break;
case "stylemap":this.extractStyles && this.parseStyleMaps(
g,
b);
break;
case "placemark":this.parseFeatures(
g,
b)}}
return this.features}, parseLinks:
function(
a,
770 b){
if (
b.depth >=
this.maxDepth)
return!1; var
c =
OpenLayers.Util.extend({},
b);
c.depth++;
for (var
d = 0,
e =
a.length;
d <
e;
d++){var
f = this.parseProperty(
a[
d],
"*",
"href");
f && !this.fetched[
f] && (this.fetched[
f] = !0, (
f = this.fetchLink(
f)) && this.parseData(
f,
c))}}, fetchLink:
function(
a){
if (
a =
OpenLayers.Request.GET({url:a, async:!1}))
return a.responseText}, parseStyles:
function(
a,
b){
for (var
c = 0,
d =
a.length;
c <
d;
c++){var
e = this.parseStyle(
a[
c]);
e && (this.styles[(
b.styleBaseUrl ||
"") +
"#" +
e.id] =
e)}}, parseKmlColor:
function(
a){var
b =
771 null;
a && (
a =
a.match(this.regExes.kmlColor)) && (
b = {color:
"#" +
a[4] +
a[3] +
a[2], opacity:parseInt(
a[1], 16) / 255});
return b}, parseStyle:
function(
a){
for (var
b = {},
c = [
"LineStyle",
"PolyStyle",
"IconStyle",
"BalloonStyle",
"LabelStyle"],
d,
e,
f = 0,
g =
c.length;
f <
g; ++
f)
if (
d =
c[
f],
e = this.getElementsByTagNameNS(
a,
"*",
d)[0])
switch (
d.toLowerCase()){
case "linestyle":
d = this.parseProperty(
e,
"*",
"color");
if (
d = this.parseKmlColor(
d))
b.strokeColor =
d.color,
b.strokeOpacity =
d.opacity; (
d = this.parseProperty(
e,
"*",
"width")) && (
b.strokeWidth =
772 d);
break;
case "polystyle":
d = this.parseProperty(
e,
"*",
"color");
if (
d = this.parseKmlColor(
d))
b.fillOpacity =
d.opacity,
b.fillColor =
d.color;
"0" == this.parseProperty(
e,
"*",
"fill") && (
b.fillColor =
"none");
"0" == this.parseProperty(
e,
"*",
"outline") && (
b.strokeWidth =
"0");
break;
case "iconstyle":var
h = parseFloat(this.parseProperty(
e,
"*",
"scale") || 1);
d = 32 *
h; var
k = 32 *
h,
l = this.getElementsByTagNameNS(
e,
"*",
"Icon")[0];
if (
l){var
m = this.parseProperty(
l,
"*",
"href");
if (
m){var
n = this.parseProperty(
l,
"*",
"w"),
p = this.parseProperty(
l,
773 "*",
"h"); !
OpenLayers.String.startsWith(
m,
"http://maps.google.com/mapfiles/kml") || (
n ||
p) || (
p =
n = 64,
h /= 2);
n =
n ||
p;
p =
p ||
n;
n && (
d = parseInt(
n) *
h);
p && (
k = parseInt(
p) *
h);
if (
p =
m.match(
this.regExes.kmlIconPalette))
n =
p[1],
p =
p[2],
m = this.parseProperty(
l,
"*",
"x"),
l = this.parseProperty(
l,
"*",
"y"),
m =
"http://maps.google.com/mapfiles/kml/pal" +
n +
"/icon" + (8 * (
l?7 -
l / 32:7) + (
m?
m / 32:0)) +
p;
b.graphicOpacity = 1;
b.externalGraphic =
m}}
if (
e = this.getElementsByTagNameNS(
e,
"*",
"hotSpot")[0])
m = parseFloat(
e.getAttribute(
"x")),
l = parseFloat(
e.getAttribute(
"y")),
774 n =
e.getAttribute(
"xunits"),
"pixels" ==
n?
b.graphicXOffset = -
m *
h:
"insetPixels" ==
n?
b.graphicXOffset = -
d +
m *
h:
"fraction" ==
n && (
b.graphicXOffset = -
d *
m),
e =
e.getAttribute(
"yunits"),
"pixels" ==
e?
b.graphicYOffset = -
k +
l *
h + 1:
"insetPixels" ==
e?
b.graphicYOffset = - (
l *
h) + 1:
"fraction" ==
e && (
b.graphicYOffset = -
k * (1 -
l) + 1);
b.graphicWidth =
d;
b.graphicHeight =
k;
break;
case "balloonstyle":(
e =
OpenLayers.Util.getXmlNodeValue(
e)) && (
b.balloonStyle =
e.replace(
this.regExes.straightBracket,
"${$1}"));
break;
case "labelstyle":
if (
d = this.parseProperty(
e,
775 "*",
"color"),
d = this.parseKmlColor(
d))
b.fontColor =
d.color,
b.fontOpacity =
d.opacity}!
b.strokeColor &&
b.fillColor && (
b.strokeColor =
b.fillColor); (
a =
a.getAttribute(
"id")) &&
b && (
b.id =
a);
return b}, parseStyleMaps:
function(
a,
b){
for (var
c = 0,
d =
a.length;
c <
d;
c++)
for (var
e =
a[
c],
f = this.getElementsByTagNameNS(
e,
"*",
"Pair"),
e =
e.getAttribute(
"id"),
g = 0,
h =
f.length;
g <
h;
g++){var
k =
f[
g],
l = this.parseProperty(
k,
"*",
"key"); (
k = this.parseProperty(
k,
"*",
"styleUrl")) &&
"normal" ==
l && (this.styles[(
b.styleBaseUrl ||
"") +
"#" +
e] =
this.styles[(
b.styleBaseUrl ||
776 "") +
k])}}, parseFeatures:
function(
a,
b){
for (var
c = [],
d = 0,
e =
a.length;
d <
e;
d++){var
f =
a[
d],
g = this.parseFeature.apply(
this, [
f]);
if (
g){this.extractStyles && (
g.attributes &&
g.attributes.styleUrl) && (
g.style =
this.getStyle(
g.attributes.styleUrl,
b));
if (this.extractStyles){var
h = this.getElementsByTagNameNS(
f,
"*",
"Style")[0];
h && (
h = this.parseStyle(
h)) && (
g.style =
OpenLayers.Util.extend(
g.style,
h))}this.extractTracks?(
f = this.getElementsByTagNameNS(
f, this.
namespaces.gx,
"Track")) && 0 <
f.length && (
g = {features:[], feature:g},
777 this.readNode(
f[0],
g), 0 <
g.features.length &&
c.push.apply(
c,
g.features)):
c.push(
g)}
else throw"Bad Placemark: " +
d; }this.features = this.features.concat(
c)}, readers:{kml:{when:
function(
a,
b){
b.whens.push(
OpenLayers.Date.parse(
this.getChildValue(
a)))}, _trackPointAttribute:
function(
a,
b){var
c =
a.nodeName.split(
":").pop();
b.attributes[
c].push(this.getChildValue(
a))}}, gx:{Track:
function(
a,
b){var
c = {whens:[], points:[], angles:[]};
if (this.trackAttributes){var
d;
c.attributes = {};
for (var
e = 0,
f = this.trackAttributes.length;
e <
778 f; ++
e)
d = this.trackAttributes[
e],
c.attributes[
d] = [],
d in this.readers.kml || (this.readers.kml[
d] = this.readers.kml._trackPointAttribute)}this.readChildNodes(
a,
c);
if (
c.whens.length !==
c.points.length)
throw Error(
"gx:Track with unequal number of when (" +
c.whens.length +
") and gx:coord (" +
c.points.length +
") elements."); var
g = 0 <
c.angles.length;
if (
g &&
c.whens.length !==
c.angles.length)
throw Error(
"gx:Track with unequal number of when (" +
c.whens.length +
") and gx:angles (" +
c.angles.length +
") elements.");
for (var
h,
779 e = 0,
f =
c.whens.length;
e <
f; ++
e){
h =
b.feature.clone();
h.fid =
b.feature.fid ||
b.feature.id;
d =
c.points[
e];
h.geometry =
d;
"z"in
d && (
h.attributes.altitude =
d.z); this.internalProjection && this.externalProjection &&
h.geometry.transform(this.externalProjection, this.internalProjection);
if (this.trackAttributes)
for (var
k = 0,
l = this.trackAttributes.length;
k <
l; ++
k)
d = this.trackAttributes[
k],
h.attributes[
d] =
c.attributes[
d][
e];
h.attributes.when =
c.whens[
e];
h.attributes.trackId =
b.feature.id;
g && (
d =
c.angles[
e],
h.attributes.heading =
780 parseFloat(
d[0]),
h.attributes.tilt = parseFloat(
d[1]),
h.attributes.roll = parseFloat(
d[2]));
b.features.push(
h)}}, coord:
function(
a,
b){var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
"").split(/\
s+/),
d =
new OpenLayers.Geometry.Point(
c[0],
c[1]); 2 <
c.length && (
d.z = parseFloat(
c[2]));
b.points.push(
d)}, angles:
function(
a,
b){var
c = this.getChildValue(
a).replace(this.regExes.trimSpace,
"").split(/\
s+/);
b.angles.push(
c)}}}, parseFeature:
function(
a){
for (var
b = [
"MultiGeometry",
"Polygon",
"LineString",
"Point"],
781 c,
d,
e,
f = 0,
g =
b.length;
f <
g; ++
f)
if (
c =
b[
f], this.internalns =
a.namespaceURI?
a.namespaceURI:
this.kmlns,
d =
this.getElementsByTagNameNS(
a,
this.internalns,
c), 0 <
d.length){
if (
b = this.parseGeometry[
c.toLowerCase()])
e =
b.apply(
this, [
d[0]]), this.internalProjection && this.externalProjection &&
e.transform(this.externalProjection, this.internalProjection);
else throw new TypeError(
"Unsupported geometry type: " +
c);
break}var
h; this.extractAttributes && (
h = this.parseAttributes(
a));
c =
new OpenLayers.Feature.Vector(
e,
h);
a =
a.getAttribute(
"id") ||
782 a.getAttribute(
"name");
null !=
a && (
c.fid =
a);
return c}, getStyle:
function(
a,
b){var
c =
OpenLayers.Util.removeTail(
a),
d =
OpenLayers.Util.extend({},
b);
d.depth++;
d.styleBaseUrl =
c; !this.styles[
a] && !
OpenLayers.String.startsWith(
a,
"#") &&
d.depth <= this.maxDepth && !this.fetched[
c] && (
c = this.fetchLink(
c)) && this.parseData(
c,
d);
return OpenLayers.Util.extend({}, this.styles[
a])}, parseGeometry:{point:
function(
a){var
b = this.getElementsByTagNameNS(
a, this.internalns,
"coordinates");
a = [];
if (0 <
b.length){var
c =
b[0].firstChild.nodeValue,
783 c =
c.replace(this.regExes.removeSpace,
"");
a =
c.split(
",")}
b =
null;
if (1 <
a.length)2 ==
a.length && (
a[2] =
null),
b =
new OpenLayers.Geometry.Point(
a[0],
a[1],
a[2]);
else throw"Bad coordinate string: " +
c;
return b}, linestring:
function(
a,
b){var
c = this.getElementsByTagNameNS(
a, this.internalns,
"coordinates"),
d =
null;
if (0 <
c.length){
for (var
c = this.getChildValue(
c[0]),
c =
c.replace(
this.regExes.trimSpace,
""),
c =
c.replace(
this.regExes.trimComma,
","),
d =
c.split(
this.regExes.splitSpace),
e =
d.length,
f =
Array(
e),
g,
h,
k = 0;
k <
e; ++
k)
if (
g =
784 d[
k].split(
","),
h =
g.length, 1 <
h)2 ==
g.length && (
g[2] =
null),
f[
k] =
new OpenLayers.Geometry.Point(
g[0],
g[1],
g[2]);
else throw"Bad LineString point coordinates: " +
d[
k];
if (
e)
d =
b?
new OpenLayers.Geometry.LinearRing(
f):
new OpenLayers.Geometry.LineString(
f);
else throw"Bad LineString coordinates: " +
c; }
return d}, polygon:
function(
a){
a = this.getElementsByTagNameNS(
a, this.internalns,
"LinearRing"); var
b =
a.length,
c =
Array(
b);
if (0 <
b)
for (var
d = 0,
e =
a.length;
d <
e; ++
d)
if (
b = this.parseGeometry.linestring.apply(
this, [
a[
d], !0]))
c[
d] =
785 b;
else throw"Bad LinearRing geometry: " +
d;
return new OpenLayers.Geometry.Polygon(
c)}, multigeometry:
function(
a){
for (var
b,
c = [],
d =
a.childNodes,
e = 0,
f =
d.length;
e <
f; ++
e)
a =
d[
e], 1 ==
a.nodeType && (
b =
a.prefix?
a.nodeName.split(
":")[1]:
a.nodeName, (
b =
this.parseGeometry[
b.toLowerCase()]) &&
c.push(
b.apply(
this, [
a])));
return new OpenLayers.Geometry.Collection(
c)}}, parseAttributes:
function(
a){var
b = {},
c =
a.getElementsByTagName(
"ExtendedData");
c.length && (
b = this.parseExtendedData(
c[0])); var
d,
e,
f;
a =
a.childNodes;
for (var
c =
786 0,
g =
a.length;
c <
g; ++
c)
if (
d =
a[
c], 1 ==
d.nodeType && (
e =
d.childNodes, 1 <=
e.length && 3 >=
e.length)){
switch (
e.length){
case 1:
f =
e[0];
break;
case 2:
f =
e[0];
e =
e[1];
f = 3 ==
f.nodeType || 4 ==
f.nodeType?
f:
e;
break;
default:
f =
e[1]}
if (3 ==
f.nodeType || 4 ==
f.nodeType)
if (
d =
d.prefix?
d.nodeName.split(
":")[1]:
d.nodeName,
f =
OpenLayers.Util.getXmlNodeValue(
f))
f =
f.replace(this.regExes.trimSpace,
""),
b[
d] =
f}
return b}, parseExtendedData:
function(
a){var
b = {},
c,
d,
e,
f,
g =
a.getElementsByTagName(
"Data");
c = 0;
for (
d =
g.length;
c <
d;
c++){
e =
g[
c];
f =
e.getAttribute(
"name");
787 var
h = {},
k =
e.getElementsByTagName(
"value");
k.length && (
h.value = this.getChildValue(
k[0])); this.kvpAttributes?
b[
f] =
h.value:(
e =
e.getElementsByTagName(
"displayName"),
e.length && (
h.displayName =
this.getChildValue(
e[0])),
b[
f] =
h)}
a =
a.getElementsByTagName(
"SimpleData");
c = 0;
for (
d =
a.length;
c <
d;
c++)
h = {},
e =
a[
c],
f =
e.getAttribute(
"name"),
h.value = this.getChildValue(
e), this.kvpAttributes?
b[
f] =
h.value:(
h.displayName =
f,
b[
f] =
h);
return b}, parseProperty:
function(
a,
b,
c){var
d;
a = this.getElementsByTagNameNS(
a,
b,
c);
try{
d =
OpenLayers.Util.getXmlNodeValue(
a[0])}
catch (
e){
d =
788null}
return d}, write:
function(
a){
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
b = this.createElementNS(this.kmlns,
"kml"),
c = this.createFolderXML(),
d = 0,
e =
a.length;
d <
e; ++
d)
c.appendChild(this.createPlacemarkXML(
a[
d]));
b.appendChild(
c);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
b])}, createFolderXML:
function(){var
a = this.createElementNS(this.kmlns,
"Folder");
if (this.foldersName){var
b = this.createElementNS(this.kmlns,
"name"),
c = this.createTextNode(this.foldersName);
b.appendChild(
c);
a.appendChild(
b)}this.foldersDesc &&
789 (
b = this.createElementNS(this.kmlns,
"description"),
c = this.createTextNode(this.foldersDesc),
b.appendChild(
c),
a.appendChild(
b));
return a}, createPlacemarkXML:
function(
a){var
b = this.createElementNS(this.kmlns,
"name"),
c =
a.style &&
a.style.label?
a.style.label:
a.id;
b.appendChild(this.createTextNode(
a.attributes.name ||
c)); var
d = this.createElementNS(this.kmlns,
"description");
d.appendChild(this.createTextNode(
a.attributes.description ||
this.placemarksDesc));
c = this.createElementNS(this.kmlns,
"Placemark");
null !=
790 a.fid &&
c.setAttribute(
"id",
a.fid);
c.appendChild(
b);
c.appendChild(
d);
b = this.buildGeometryNode(
a.geometry);
c.appendChild(
b);
a.attributes && (
a = this.buildExtendedData(
a.attributes)) &&
c.appendChild(
a);
return c}, buildGeometryNode:
function(
a){var
b =
a.CLASS_NAME,
b =
b.substring(
b.lastIndexOf(
".") + 1),
b = this.buildGeometry[
b.toLowerCase()],
c =
null;
b && (
c =
b.apply(
this, [
a]));
return c}, buildGeometry:{point:
function(
a){var
b = this.createElementNS(this.kmlns,
"Point");
b.appendChild(this.buildCoordinatesNode(
a));
return b},
791 multipoint:
function(
a){
return this.buildGeometry.collection.apply(
this, [
a])}, linestring:
function(
a){var
b = this.createElementNS(this.kmlns,
"LineString");
b.appendChild(this.buildCoordinatesNode(
a));
return b}, multilinestring:
function(
a){
return this.buildGeometry.collection.apply(
this, [
a])}, linearring:
function(
a){var
b = this.createElementNS(this.kmlns,
"LinearRing");
b.appendChild(this.buildCoordinatesNode(
a));
return b}, polygon:
function(
a){var
b = this.createElementNS(this.kmlns,
"Polygon");
a =
a.components;
792 for (var
c,
d,
e = 0,
f =
a.length;
e <
f; ++
e)
c = 0 ==
e?
"outerBoundaryIs":
"innerBoundaryIs",
c = this.createElementNS(this.kmlns,
c),
d = this.buildGeometry.linearring.apply(
this, [
a[
e]]),
c.appendChild(
d),
b.appendChild(
c);
return b}, multipolygon:
function(
a){
return this.buildGeometry.collection.apply(
this, [
a])}, collection:
function(
a){
for (var
b = this.createElementNS(this.kmlns,
"MultiGeometry"),
c,
d = 0,
e =
a.components.length;
d <
e; ++
d)(
c = this.buildGeometryNode.apply(
this, [
a.components[
d]])) &&
b.appendChild(
c);
return b}}, buildCoordinatesNode:
function(
a){var
b =
793 this.createElementNS(this.kmlns,
"coordinates"),
c;
if (
c =
a.components){
for (var
d =
c.length,
e =
Array(
d),
f = 0;
f <
d; ++
f)
a =
c[
f],
e[
f] = this.buildCoordinates(
a);
c =
e.join(
" ")}
else c = this.buildCoordinates(
a);
c = this.createTextNode(
c);
b.appendChild(
c);
return b}, buildCoordinates:
function(
a){this.internalProjection && this.externalProjection && (
a =
a.clone(),
a.transform(
this.internalProjection,
this.externalProjection));
return a.x +
"," +
a.y}, buildExtendedData:
function(
a){var
b = this.createElementNS(this.kmlns,
"ExtendedData"),
794 c;
for (
c in
a)
if (
a[
c] &&
"name" !=
c &&
"description" !=
c &&
"styleUrl" !=
c){var
d = this.createElementNS(this.kmlns,
"Data");
d.setAttribute(
"name",
c); var
e = this.createElementNS(this.kmlns,
"value");
if (
"object" == typeof
a[
c]){
if (
a[
c].value &&
e.appendChild(
this.createTextNode(
a[
c].value)),
a[
c].displayName){var
f = this.createElementNS(this.kmlns,
"displayName");
f.appendChild(this.getXMLDoc().createCDATASection(
a[
c].displayName));
d.appendChild(
f)}}
else e.appendChild(this.createTextNode(
a[
c]));
d.appendChild(
e);
b.appendChild(
d)}
return this.isSimpleContent(
b)?
795 null:
b}, CLASS_NAME:
"OpenLayers.Format.KML"});
OpenLayers.Format.WMSCapabilities =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.1.1", profile:null, CLASS_NAME:
"OpenLayers.Format.WMSCapabilities"});
OpenLayers.Format.WMSCapabilities.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{wms:
"http://www.opengis.net/wms", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, defaultPrefix:
"wms", read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); var b = a; a && 9 == a.nodeType && (a = a.documentElement); var c = {};
this.readNode(
a,
c);
void 0 ===
c.service && (
a =
new OpenLayers.Format.OGCExceptionReport,
c.error =
a.read(
b));
return c}, readers:{wms:{Service:
function(
a,
796 b){
b.service = {}; this.readChildNodes(
a,
b.service)}, Name:
function(
a,
b){
b.name = this.getChildValue(
a)}, Title:
function(
a,
b){
b.title = this.getChildValue(
a)}, Abstract:
function(
a,
b){
b[
"abstract"] = this.getChildValue(
a)}, BoundingBox:
function(
a,
b){var
c = {};
c.bbox = [parseFloat(
a.getAttribute(
"minx")), parseFloat(
a.getAttribute(
"miny")), parseFloat(
a.getAttribute(
"maxx")), parseFloat(
a.getAttribute(
"maxy"))]; var
d = {
x:parseFloat(
a.getAttribute(
"resx")),
y:parseFloat(
a.getAttribute(
"resy"))}; isNaN(
d.x) && isNaN(
d.y) || (
c.res =
797 d);
return c}, OnlineResource:
function(
a,
b){
b.href = this.getAttributeNS(
a, this.
namespaces.xlink,
"href")}, ContactInformation:
function(
a,
b){
b.contactInformation = {}; this.readChildNodes(
a,
b.contactInformation)}, ContactPersonPrimary:
function(
a,
b){
b.personPrimary = {}; this.readChildNodes(
a,
b.personPrimary)}, ContactPerson:
function(
a,
b){
b.person = this.getChildValue(
a)}, ContactOrganization:
function(
a,
b){
b.organization = this.getChildValue(
a)}, ContactPosition:
function(
a,
b){
b.position = this.getChildValue(
a)}, ContactAddress:
function(
a,
798 b){
b.contactAddress = {}; this.readChildNodes(
a,
b.contactAddress)}, AddressType:
function(
a,
b){
b.type = this.getChildValue(
a)}, Address:
function(
a,
b){
b.address = this.getChildValue(
a)}, City:
function(
a,
b){
b.city = this.getChildValue(
a)}, StateOrProvince:
function(
a,
b){
b.stateOrProvince = this.getChildValue(
a)}, PostCode:
function(
a,
b){
b.postcode = this.getChildValue(
a)}, Country:
function(
a,
b){
b.country = this.getChildValue(
a)}, ContactVoiceTelephone:
function(
a,
b){
b.phone = this.getChildValue(
a)}, ContactFacsimileTelephone:
function(
a,
799 b){
b.fax = this.getChildValue(
a)}, ContactElectronicMailAddress:
function(
a,
b){
b.email = this.getChildValue(
a)}, Fees:
function(
a,
b){var
c = this.getChildValue(
a);
c &&
"none" !=
c.toLowerCase() && (
b.fees =
c)}, AccessConstraints:
function(
a,
b){var
c = this.getChildValue(
a);
c &&
"none" !=
c.toLowerCase() && (
b.accessConstraints =
c)}, Capability:
function(
a,
b){
b.capability = {nestedLayers:[], layers:[]}; this.readChildNodes(
a,
b.capability)}, Request:
function(
a,
b){
b.request = {}; this.readChildNodes(
a,
b.request)}, GetCapabilities:
function(
a,
800 b){
b.getcapabilities = {formats:[]}; this.readChildNodes(
a,
b.getcapabilities)},
Format:
function(
a,
b){
OpenLayers.Util.isArray(
b.formats)?
b.formats.push(this.getChildValue(
a)):
b.format = this.getChildValue(
a)}, DCPType:
function(
a,
b){this.readChildNodes(
a,
b)}, HTTP:
function(
a,
b){this.readChildNodes(
a,
b)}, Get:
function(
a,
b){
b.get = {}; this.readChildNodes(
a,
b.get);
b.href || (
b.href =
b.get.href)}, Post:
function(
a,
b){
b.post = {}; this.readChildNodes(
a,
b.post);
b.href || (
b.href =
b.get.href)}, GetMap:
function(
a,
b){
b.getmap = {formats:[]};
801 this.readChildNodes(
a,
b.getmap)}, GetFeatureInfo:
function(
a,
b){
b.getfeatureinfo = {formats:[]}; this.readChildNodes(
a,
b.getfeatureinfo)}, Exception:
function(
a,
b){
b.exception = {formats:[]}; this.readChildNodes(
a,
b.exception)},
Layer:
function(
a,
b){var
c,
d;
b.capability?(
d =
b.capability,
c =
b):
d =
b; var
e =
a.getAttributeNode(
"queryable"),
f =
e &&
e.specified?
a.getAttribute(
"queryable"):
null,
g = (
e =
a.getAttributeNode(
"cascaded")) &&
e.specified?
a.getAttribute(
"cascaded"):
null,
e = (
e =
a.getAttributeNode(
"opaque")) &&
e.specified?
802 a.getAttribute(
"opaque"):
null,
h =
a.getAttribute(
"noSubsets"),
k =
a.getAttribute(
"fixedWidth"),
l =
a.getAttribute(
"fixedHeight"),
m =
c || {},
n =
OpenLayers.Util.extend;
c = {nestedLayers:[], styles:
c?[].concat(
c.styles):[], srs:
c?
n({},
m.srs):{}, metadataURLs:[], bbox:
c?
n({},
m.bbox):{}, llbbox:
m.llbbox, dimensions:
c?
n({},
m.dimensions):{}, authorityURLs:
c?
n({},
m.authorityURLs):{}, identifiers:{}, keywords:[], queryable:
f &&
"" !==
f?
"1" ===
f ||
"true" ===
f:
m.queryable || !1, cascaded:
null !==
g?parseInt(
g):
m.cascaded || 0, opaque:
e?
"1" ===
803 e ||
"true" ===
e:
m.opaque || !1, noSubsets:null !==
h?
"1" ===
h ||
"true" ===
h:
m.noSubsets || !1, fixedWidth:null !=
k?parseInt(
k):
m.fixedWidth || 0, fixedHeight:null !=
l?parseInt(
l):
m.fixedHeight || 0, minScale:
m.minScale, maxScale:
m.maxScale, attribution:
m.attribution};
b.nestedLayers.push(
c);
c.capability =
d; this.readChildNodes(
a,
c);
delete c.capability;
c.name && (
f =
c.name.split(
":"),
g =
d.request,
e =
g.getfeatureinfo, 0 <
f.length && (
c.prefix =
f[0]),
d.layers.push(
c),
void 0 ===
c.formats && (
c.formats =
g.getmap.formats),
void 0 ===
c.infoFormats &&
804 e && (
c.infoFormats =
e.formats))}, Attribution:
function(
a,
b){
b.attribution = {}; this.readChildNodes(
a,
b.attribution)}, LogoURL:
function(
a,
b){
b.logo = {width:
a.getAttribute(
"width"), height:
a.getAttribute(
"height")}; this.readChildNodes(
a,
b.logo)},
Style:
function(
a,
b){var
c = {};
b.styles.push(
c); this.readChildNodes(
a,
c)}, LegendURL:
function(
a,
b){var
c = {width:
a.getAttribute(
"width"), height:
a.getAttribute(
"height")};
b.legend =
c; this.readChildNodes(
a,
c)}, MetadataURL:
function(
a,
b){var
c = {type:
a.getAttribute(
"type")};
805 b.metadataURLs.push(
c); this.readChildNodes(
a,
c)}, DataURL:
function(
a,
b){
b.dataURL = {}; this.readChildNodes(
a,
b.dataURL)}, FeatureListURL:
function(
a,
b){
b.featureListURL = {}; this.readChildNodes(
a,
b.featureListURL)}, AuthorityURL:
function(
a,
b){var
c =
a.getAttribute(
"name"),
d = {}; this.readChildNodes(
a,
d);
b.authorityURLs[
c] =
d.href}, Identifier:
function(
a,
b){var
c =
a.getAttribute(
"authority");
b.identifiers[
c] = this.getChildValue(
a)}, KeywordList:
function(
a,
b){this.readChildNodes(
a,
b)}, SRS:
function(
a,
b){
b.srs[this.getChildValue(
a)] =
806 !0}}}, CLASS_NAME:
"OpenLayers.Format.WMSCapabilities.v1"});
OpenLayers.Format.WMSCapabilities.v1_1 =
OpenLayers.Class(
OpenLayers.Format.WMSCapabilities.v1, {readers:{wms:
OpenLayers.Util.applyDefaults({WMT_MS_Capabilities:
function(
a,
b){this.readChildNodes(
a,
b)}, Keyword:
function(
a,
b){
b.keywords &&
b.keywords.push(this.getChildValue(
a))}, DescribeLayer:
function(
a,
b){
b.describelayer = {formats:[]}; this.readChildNodes(
a,
b.describelayer)}, GetLegendGraphic:
function(
a,
b){
b.getlegendgraphic = {formats:[]}; this.readChildNodes(
a,
b.getlegendgraphic)}, GetStyles:
function(
a,
b){
b.getstyles =
807{formats:[]}; this.readChildNodes(
a,
b.getstyles)}, PutStyles:
function(
a,
b){
b.putstyles = {formats:[]}; this.readChildNodes(
a,
b.putstyles)}, UserDefinedSymbolization:
function(
a,
b){var
c = {supportSLD:1 == parseInt(
a.getAttribute(
"SupportSLD")), userLayer:1 == parseInt(
a.getAttribute(
"UserLayer")), userStyle:1 == parseInt(
a.getAttribute(
"UserStyle")), remoteWFS:1 == parseInt(
a.getAttribute(
"RemoteWFS"))};
b.userSymbols =
c}, LatLonBoundingBox:
function(
a,
b){
b.llbbox = [parseFloat(
a.getAttribute(
"minx")), parseFloat(
a.getAttribute(
"miny")),
808 parseFloat(
a.getAttribute(
"maxx")), parseFloat(
a.getAttribute(
"maxy"))]}, BoundingBox:
function(
a,
b){var
c =
OpenLayers.Format.WMSCapabilities.v1.prototype.readers.wms.BoundingBox.apply(
this, [
a,
b]);
c.srs =
a.getAttribute(
"SRS");
b.bbox[
c.srs] =
c}, ScaleHint:
function(
a,
b){var
c =
a.getAttribute(
"min"),
d =
a.getAttribute(
"max"),
e =
Math.pow(2, 0.5),
f =
OpenLayers.INCHES_PER_UNIT.m; 0 !=
c && (
b.maxScale = parseFloat((
c /
e *
f *
OpenLayers.DOTS_PER_INCH).toPrecision(13)));
d !=
Number.POSITIVE_INFINITY && (
b.minScale = parseFloat((
d /
e *
f *
809 OpenLayers.DOTS_PER_INCH).toPrecision(13)))}, Dimension:
function(
a,
b){var
c = {name:
a.getAttribute(
"name").toLowerCase(), units:
a.getAttribute(
"units"), unitsymbol:
a.getAttribute(
"unitSymbol")};
b.dimensions[
c.name] =
c}, Extent:
function(
a,
b){var
c =
a.getAttribute(
"name").toLowerCase();
if (
c in
b.dimensions){
c =
b.dimensions[
c];
c.nearestVal =
"1" ===
a.getAttribute(
"nearestValue");
c.multipleVal =
"1" ===
a.getAttribute(
"multipleValues");
c.current =
"1" ===
a.getAttribute(
"current");
c[
"default"] =
a.getAttribute(
"default") ||
810 ""; var
d = this.getChildValue(
a);
c.values =
d.split(
",")}}},
OpenLayers.Format.WMSCapabilities.v1.prototype.readers.wms)}, CLASS_NAME:
"OpenLayers.Format.WMSCapabilities.v1_1"});
OpenLayers.Format.WMSCapabilities.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.WMSCapabilities.v1_1, {
version:
"1.1.0", readers:{wms:
OpenLayers.Util.applyDefaults({SRS:
function(
a,
b){
for (var
c = this.getChildValue(
a).split(/ +/),
d = 0,
e =
c.length;
d <
e;
d++)
b.srs[
c[
d]] = !0}},
OpenLayers.Format.WMSCapabilities.v1_1.prototype.readers.wms)}, CLASS_NAME:
"OpenLayers.Format.WMSCapabilities.v1_1_0"});
OpenLayers.Protocol.WFS.v1 =
OpenLayers.Class(
OpenLayers.Protocol, {
version:null, srsName:
"EPSG:4326", featureType:null, featureNS:null, geometryName:
"the_geom", schema:null, featurePrefix:
"feature", formatOptions:null, readFormat:null, readOptions:null, initialize:function(
a){
OpenLayers.Protocol.prototype.initialize.apply(
this, [
a]);
a.format || (this.format =
OpenLayers.Format.WFST(
OpenLayers.Util.extend({version:this.version, featureType:this.featureType, featureNS:this.featureNS, featurePrefix:this.featurePrefix, geometryName:this.geometryName,
811 srsName:this.srsName, schema:this.schema},
this.formatOptions))); !
a.geometryName && 1 < parseFloat(this.format.version) &&
this.setGeometryName(
null)}, destroy:
function(){this.options && !this.options.format && this.format.destroy(); this.format =
null;
OpenLayers.Protocol.prototype.destroy.apply(
this)}, read:
function(
a){
OpenLayers.Protocol.prototype.read.apply(
this, arguments);
a =
OpenLayers.Util.extend({},
a);
OpenLayers.Util.applyDefaults(
a, this.options || {}); var
b =
new OpenLayers.Protocol.Response({requestType:
"read"}),
812 c =
OpenLayers.Format.XML.prototype.write.apply(
this.format, [
this.format.writeNode(
"wfs:GetFeature",
a)]);
b.priv =
OpenLayers.Request.POST({url:
a.url, callback:this.createCallback(this.handleRead,
b,
a), params:
a.params, headers:
a.headers, data:
c});
return b}, setFeatureType:
function(
a){this.featureType =
a; this.format.featureType =
a}, setGeometryName:
function(
a){this.geometryName =
a; this.format.geometryName =
a}, handleRead:
function(
a,
b){
b =
OpenLayers.Util.extend({},
b);
OpenLayers.Util.applyDefaults(
b, this.options);
if (
b.callback){var
c =
813 a.priv; 200 <=
c.status && 300 >
c.status?(
c = this.parseResponse(
c,
b.readOptions)) && !1 !==
c.success?(
b.readOptions &&
"object" ==
b.readOptions.output?
OpenLayers.Util.extend(
a,
c):
a.features =
c,
a.code =
OpenLayers.Protocol.Response.SUCCESS):(
a.code =
OpenLayers.Protocol.Response.FAILURE,
a.error =
c):
a.code =
OpenLayers.
Protocol.
Response.
FAILURE;
b.callback.call(
b.scope,
a)}}, parseResponse:
function(
a,
b){var
c =
a.responseXML;
c &&
c.documentElement || (
c =
a.responseText);
if (!
c || 0 >=
c.length)
return null;
c =
null !== this.readFormat?this.readFormat.read(
c):
814 this.format.read(
c,
b);
if (!this.featureNS){var
d = this.readFormat || this.format; this.featureNS =
d.featureNS;
d.autoConfig = !1; this.geometryName || this.setGeometryName(
d.geometryName)}
return c}, commit:
function(
a,
b){
b =
OpenLayers.Util.extend({},
b);
OpenLayers.Util.applyDefaults(
b, this.options); var
c =
new OpenLayers.Protocol.Response({requestType:
"commit", reqFeatures:
a});
c.priv =
OpenLayers.Request.POST({url:
b.url, headers:
b.headers, data:this.format.write(
a,
b), callback:this.createCallback(this.handleCommit,
c,
b)});
815 return c}, handleCommit:
function(
a,
b){
if (
b.callback){var
c =
a.priv,
d =
c.responseXML;
d &&
d.documentElement || (
d =
c.responseText);
c = this.format.read(
d) || {};
a.insertIds =
c.insertIds || [];
c.success?
a.code =
OpenLayers.Protocol.Response.SUCCESS:(
a.code =
OpenLayers.Protocol.Response.FAILURE,
a.error =
c);
b.callback.call(
b.scope,
a)}}, filterDelete:
function(
a,
b){
b =
OpenLayers.Util.extend({},
b);
OpenLayers.Util.applyDefaults(
b, this.options);
new OpenLayers.Protocol.Response({requestType:
"commit"}); var
c = this.format.createElementNSPlus(
"wfs:Transaction",
816{attributes:{service:
"WFS",
version:this.
version}}),
d = this.format.createElementNSPlus(
"wfs:Delete", {attributes:{typeName:(b.featureNS?this.featurePrefix +
":":
"") + b.featureType}});
b.featureNS &&
d.setAttribute(
"xmlns:" + this.featurePrefix,
b.featureNS); var
e = this.format.writeNode(
"ogc:Filter",
a);
d.appendChild(
e);
c.appendChild(
d);
c =
OpenLayers.Format.XML.prototype.write.apply(this.format, [
c]);
return OpenLayers.Request.POST({url:this.url, callback:
b.callback ||
function(){}, data:
c})}, abort:
function(
a){
a &&
a.priv.abort()},
817 CLASS_NAME:
"OpenLayers.Protocol.WFS.v1"});
OpenLayers.Handler.Feature =
OpenLayers.Class(
OpenLayers.Handler, {EVENTMAP:{click:{
"in":
"click", out:
"clickout"}, mousemove:{
"in":
"over", out:
"out"}, dblclick:{
"in":
"dblclick", out:
null}, mousedown:{
"in":
null, out:
null}, mouseup:{
"in":
null, out:
null}, touchstart:{
"in":
"click", out:
"clickout"}}, feature:
null, lastFeature:
null, down:
null, up:
null, clickTolerance:4, geometryTypes:
null, stopClick:!0, stopDown:!0, stopUp:!1, initialize:
function(
a,
b,
c,
d){
OpenLayers.Handler.prototype.initialize.apply(
this, [
a,
c,
d]); this.layer =
818b}, touchstart:
function(
a){this.startTouch();
return OpenLayers.Event.isMultiTouch(
a)?!0:this.mousedown(
a)}, touchmove:
function(
a){
OpenLayers.Event.preventDefault(
a)}, mousedown:
function(
a){
if (
OpenLayers.Event.isLeftClick(
a) ||
OpenLayers.Event.isSingleTouch(
a))this.down =
a.xy;
return this.
handle(a)?!this.stopDown:!0}, mouseup:
function(
a){this.up =
a.xy;
return this.
handle(a)?!this.stopUp:!0}, click:
function(
a){
return this.
handle(a)?!this.stopClick:!0}, mousemove:
function(
a){
if (!this.callbacks.over && !
this.callbacks.out)
return!0;
819 this.
handle(a);
return!0}, dblclick:
function(
a){
return!this.
handle(a)}, geometryTypeMatches:
function(
a){
return null == this.geometryTypes || - 1 <
OpenLayers.Util.indexOf(this.geometryTypes,
a.geometry.CLASS_NAME)},
handle:
function(
a){this.feature && !this.feature.layer && (this.feature =
null); var
b =
a.type,
c = !1,
d = !!this.feature,
e =
"click" ==
b ||
"dblclick" ==
b ||
"touchstart" ==
b; (this.feature = this.layer.getFeatureFromEvent(
a)) && !this.feature.layer && (this.feature =
null); this.lastFeature && !this.lastFeature.layer && (this.lastFeature =
820 null); this.feature?(
"touchstart" ===
b &&
OpenLayers.Event.preventDefault(
a),
a = this.feature != this.lastFeature, this.geometryTypeMatches(this.feature)?(
d &&
a?(this.lastFeature && this.triggerCallback(
b,
"out", [this.lastFeature]), this.triggerCallback(
b,
"in", [this.feature])):
d && !
e || this.triggerCallback(
b,
"in", [this.feature]), this.lastFeature = this.feature,
c = !0):(this.lastFeature && (
d &&
a ||
e) && this.triggerCallback(
b,
"out", [this.lastFeature]), this.feature =
null)):
this.lastFeature && (
d ||
e) &&
this.triggerCallback(
b,
"out",
821 [
this.lastFeature]);
return c}, triggerCallback:
function(
a,
b,
c){
if (
b = this.EVENTMAP[
a][
b])
"click" ==
a && this.up && this.down?(
Math.sqrt(
Math.pow(
this.up.x -
this.down.x, 2) +
Math.pow(
this.up.y -
this.down.y, 2)) <=
this.clickTolerance &&
this.callback(
b,
c),
this.up =
this.down =
null):
this.callback(
b,
c)}, activate:function(){var
a = !1;
OpenLayers.Handler.prototype.activate.apply(
this, arguments) && (this.moveLayerToTop(), this.map.events.on({removelayer:this.handleMapEvents, changelayer:this.handleMapEvents, scope:this}),
a = !0);
822 return a}, deactivate:
function(){var
a = !1;
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments) && (this.moveLayerBack(), this.up = this.down = this.lastFeature = this.feature =
null, this.map.events.un({removelayer:this.handleMapEvents, changelayer:this.handleMapEvents, scope:
this}),
a = !0);
return a}, handleMapEvents:
function(
a){
"removelayer" !=
a.type &&
"order" !=
a.property || this.moveLayerToTop()}, moveLayerToTop:
function(){var
a =
Math.max(this.map.Z_INDEX_BASE.Feature - 1,
this.layer.getZIndex()) + 1; this.layer.setZIndex(
a)},
823 moveLayerBack:
function(){var
a = this.layer.getZIndex() - 1;
a >= this.map.Z_INDEX_BASE.Feature?this.layer.setZIndex(
a):this.map.setLayerZIndex(this.layer, this.map.getLayerIndex(
this.layer))}, CLASS_NAME:
"OpenLayers.Handler.Feature"});
OpenLayers.Layer.Vector.RootContainer =
OpenLayers.Class(
OpenLayers.Layer.Vector, {displayInLayerSwitcher:!1, layers:null, display:function(){}, getFeatureFromEvent:
function(
a){
for (var
b = this.layers,
c,
d = 0;
d <
b.length;
d++)
if (
c =
b[
d].getFeatureFromEvent(
a))
return c}, setMap:
function(
a){
OpenLayers.Layer.Vector.prototype.setMap.apply(
this, arguments); this.collectRoots();
a.events.register(
"changelayer",
this, this.handleChangeLayer)}, removeMap:
function(
a){
a.events.unregister(
"changelayer",
this, this.handleChangeLayer);
824 this.resetRoots();
OpenLayers.Layer.Vector.prototype.removeMap.apply(
this, arguments)}, collectRoots:
function(){
for (var
a,
b = 0;
b < this.map.layers.length; ++
b)
a = this.map.layers[
b], - 1 !=
OpenLayers.Util.indexOf(
this.layers,
a) &&
a.renderer.moveRoot(this.renderer)}, resetRoots:
function(){
for (var
a,
b = 0;
b < this.layers.length; ++
b)
a = this.layers[
b], this.renderer &&
a.renderer.getRenderLayerId() == this.
id && this.renderer.moveRoot(
a.renderer)}, handleChangeLayer:
function(
a){var
b =
a.layer;
"order" ==
a.property && - 1 !=
OpenLayers.Util.indexOf(this.layers,
825 b) && (this.resetRoots(), this.collectRoots())}, CLASS_NAME:
"OpenLayers.Layer.Vector.RootContainer"});
OpenLayers.Control.SelectFeature =
OpenLayers.Class(
OpenLayers.Control, {multipleKey:null, toggleKey:null, multiple:!1, clickout:!0, toggle:!1, hover:!1, highlightOnly:!1, box:!1, onBeforeSelect:function(){}, onSelect:
function(){}, onUnselect:
function(){}, scope:
null, geometryTypes:
null, layer:
null, layers:
null, callbacks:
null, selectStyle:
null, renderIntent:
"select", handlers:
null, initialize:
function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]);
null === this.scope && (this.scope =
this); this.initLayer(
a); var
c =
826{click:this.clickFeature, clickout:this.clickoutFeature}; this.hover && (
c.over = this.overFeature,
c.out = this.outFeature); this.callbacks =
OpenLayers.Util.extend(
c, this.callbacks); this.handlers = {feature:
new OpenLayers.Handler.Feature(
this, this.layer, this.callbacks, {geometryTypes:this.geometryTypes})}; this.box && (this.handlers.box =
new OpenLayers.Handler.Box(
this, {done:this.selectBox}, {boxDivClassName:
"olHandlerBoxSelectFeature"}))}, initLayer:
function(
a){
OpenLayers.Util.isArray(
a)?(this.layers =
a, this.layer =
827 new OpenLayers.Layer.Vector.RootContainer(this.
id +
"_container", {layers:
a})):
this.layer =
a}, destroy:function(){this.active && this.layers && this.map.removeLayer(this.layer);
OpenLayers.Control.prototype.destroy.apply(
this, arguments); this.layers && this.layer.destroy()}, activate:
function(){this.active || (this.layers && this.map.addLayer(this.layer), this.handlers.feature.activate(),
this.box &&
this.handlers.box &&
this.handlers.box.activate());
return OpenLayers.Control.prototype.activate.apply(
this, arguments)}, deactivate:
function(){this.active &&
828 (this.handlers.feature.deactivate(), this.handlers.box &&
this.handlers.box.deactivate(),
this.layers &&
this.map.removeLayer(
this.layer));
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, unselectAll:
function(
a){var
b = this.layers || [this.layer],
c,
d,
e,
f;
for (
e = 0;
e <
b.length; ++
e)
if (
c =
b[
e],
f = 0,
null !=
c.selectedFeatures)
for (;
c.selectedFeatures.length >
f; )
d =
c.selectedFeatures[
f],
a &&
a.except ==
d?++
f:
this.unselect(
d)}, clickFeature:function(
a){this.hover || ( - 1 <
OpenLayers.Util.indexOf(
a.layer.selectedFeatures,
829 a)?
this.toggleSelect()?
this.unselect(
a):
this.multipleSelect() ||
this.unselectAll({except:a}):(
this.multipleSelect() ||
this.unselectAll({except:a}),
this.select(
a)))}, multipleSelect:
function(){
return this.multiple || this.handlers.feature.evt && this.handlers.feature.evt[this.multipleKey]}, toggleSelect:
function(){
return this.toggle || this.handlers.feature.evt && this.handlers.feature.evt[this.toggleKey]}, clickoutFeature:
function(
a){!this.hover && this.clickout && this.unselectAll()}, overFeature:
function(
a){var
b =
830 a.layer; this.hover && (this.highlightOnly?this.highlight(
a): - 1 ==
OpenLayers.
Util.
indexOf(
b.selectedFeatures,
a) &&
this.select(
a))}, outFeature:function(
a){
if (this.hover)
if (this.highlightOnly){
if (
a._lastHighlighter ==
this.id)
if (
a._prevHighlighter &&
a._prevHighlighter !=
this.id){
delete a._lastHighlighter; var
b = this.map.getControl(
a._prevHighlighter);
b &&
b.highlight(
a)}
else this.unhighlight(
a)}
else this.unselect(
a)}, highlight:
function(
a){var
b =
a.layer; !1 !== this.events.triggerEvent(
"beforefeaturehighlighted", {feature:
a}) &&
831 (
a._prevHighlighter =
a._lastHighlighter,
a._lastHighlighter =
this.id,
b.drawFeature(
a,
this.selectStyle ||
this.renderIntent),
this.events.triggerEvent(
"featurehighlighted", {feature:a}))}, unhighlight:
function(
a){var
b =
a.layer;
void 0 ==
a._prevHighlighter?
delete a._lastHighlighter:(
a._prevHighlighter != this.
id && (a._lastHighlighter =
a._prevHighlighter),
delete a._prevHighlighter);
b.drawFeature(
a,
a.style ||
a.layer.style ||
"default"); this.events.triggerEvent(
"featureunhighlighted", {feature:
a})}, select:
function(
a){var
b =
832 this.onBeforeSelect.call(this.scope,
a),
c =
a.layer; !1 !==
b && (
b =
c.events.triggerEvent(
"beforefeatureselected", {feature:
a}), !1 !==
b && (
c.selectedFeatures.push(
a), this.highlight(
a), this.handlers.feature.lastFeature || (
this.handlers.feature.lastFeature =
c.selectedFeatures[0]),
c.events.triggerEvent(
"featureselected", {feature:a}),
this.onSelect.call(
this.scope,
a)))}, unselect:
function(
a){var
b =
a.layer; this.unhighlight(
a);
OpenLayers.Util.removeItem(
b.selectedFeatures,
a);
b.events.triggerEvent(
"featureunselected",
833{feature:
a}); this.onUnselect.call(this.scope,
a)}, selectBox:
function(
a){
if (
a instanceof
OpenLayers.Bounds){var
b = this.map.getLonLatFromPixel({
x:
a.left,
y:
a.bottom});
a = this.map.getLonLatFromPixel({
x:
a.right,
y:
a.top});
b =
new OpenLayers.Bounds(
b.lon,
b.lat,
a.lon,
a.lat); this.multipleSelect() || this.unselectAll();
a = this.multiple; this.multiple = !0; var
c = this.layers || [this.layer]; this.events.triggerEvent(
"boxselectionstart", {layers:
c});
for (var
d,
e = 0;
e <
c.length; ++
e){
d =
c[
e];
for (var
f = 0,
g =
d.features.length;
f <
g; ++
f){var
h =
834 d.features[
f];
h.getVisibility() && (
null == this.geometryTypes || - 1 <
OpenLayers.Util.indexOf(this.geometryTypes,
h.geometry.CLASS_NAME)) &&
b.toGeometry().intersects(
h.geometry) && - 1 ==
OpenLayers.Util.indexOf(
d.selectedFeatures,
h) && this.select(
h)}}this.multiple =
a; this.events.triggerEvent(
"boxselectionend", {layers:
c})}}, setMap:
function(
a){this.handlers.feature.setMap(
a); this.box && this.handlers.box.setMap(
a);
OpenLayers.Control.prototype.setMap.apply(
this, arguments)}, setLayer:
function(
a){var
b = this.active; this.unselectAll();
835 this.deactivate(); this.layers && (this.layer.destroy(), this.layers =
null); this.initLayer(
a); this.handlers.feature.layer = this.layer;
b && this.activate()}, CLASS_NAME:
"OpenLayers.Control.SelectFeature"});
OpenLayers.Handler.Point =
OpenLayers.Class(
OpenLayers.Handler, {point:null, layer:null, multi:!1, citeCompliant:!1, mouseDown:!1, stoppedDown:null, lastDown:null, lastUp:null, persist:!1, stopDown:!1, stopUp:!1, layerOptions:null, pixelTolerance:5, lastTouchPx:null, initialize:function(
a,
b,
c){
c &&
c.layerOptions &&
c.layerOptions.styleMap || (this.
style =
OpenLayers.Util.extend(
OpenLayers.Feature.Vector.style[
"default"], {}));
OpenLayers.Handler.prototype.initialize.apply(
this, arguments)}, activate:
function(){
if (!
OpenLayers.Handler.prototype.activate.apply(
this,
836 arguments))
return!1; var
a =
OpenLayers.Util.extend({displayInLayerSwitcher:!1, calculateInRange:
OpenLayers.Function.True, wrapDateLine:this.citeCompliant}, this.layerOptions); this.layer =
new OpenLayers.Layer.Vector(this.CLASS_NAME,
a); this.map.addLayer(this.layer);
return!0}, createFeature:
function(
a){
a = this.layer.getLonLatFromViewPortPx(
a);
a =
new OpenLayers.Geometry.Point(
a.lon,
a.lat); this.point =
new OpenLayers.Feature.Vector(
a); this.callback(
"create", [this.point.geometry,
this.point]); this.point.geometry.clearBounds();
837 this.layer.addFeatures([this.point], {silent:!0})}, deactivate:
function(){
if (!
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments))
return!1; this.cancel();
null != this.layer.map && (this.destroyFeature(!0), this.layer.destroy(!1)); this.layer =
null;
return!0}, destroyFeature:
function(
a){!this.layer || !
a && this.persist || this.layer.destroyFeatures(); this.point =
null}, destroyPersistedFeature:
function(){var
a = this.layer;
a && 1 <
a.features.length && this.layer.features[0].destroy()}, finalize:
function(
a){this.mouseDown =
838 !1; this.lastTouchPx = this.lastUp = this.lastDown =
null; this.callback(
a?
"cancel":
"done", [this.geometryClone()]); this.destroyFeature(
a)}, cancel:
function(){this.finalize(!0)}, click:
function(
a){
OpenLayers.Event.stop(
a);
return!1}, dblclick:
function(
a){
OpenLayers.Event.stop(
a);
return!1}, modifyFeature:
function(
a){this.point || this.createFeature(
a);
a = this.layer.getLonLatFromViewPortPx(
a); this.point.geometry.x =
a.lon; this.point.geometry.y =
a.lat; this.callback(
"modify", [this.point.geometry,
this.point, !1]); this.point.geometry.clearBounds();
839 this.drawFeature()}, drawFeature:
function(){this.layer.drawFeature(this.point, this.
style)}, getGeometry:
function(){var
a = this.point && this.point.geometry;
a && this.multi && (
a =
new OpenLayers.Geometry.MultiPoint([
a]));
return a}, geometryClone:
function(){var
a = this.getGeometry();
return a &&
a.clone()}, mousedown:
function(
a){
return this.down(
a)}, touchstart:
function(
a){this.startTouch(); this.lastTouchPx =
a.xy;
return this.down(
a)}, mousemove:
function(
a){
return this.move(
a)}, touchmove:
function(
a){this.lastTouchPx =
a.xy;
840 return this.move(
a)}, mouseup:
function(
a){
return this.up(
a)}, touchend:
function(
a){
a.xy = this.lastTouchPx;
return this.up(
a)}, down:
function(
a){this.mouseDown = !0; this.lastDown =
a.xy; this.touch || this.modifyFeature(
a.xy); this.stoppedDown = this.stopDown;
return!this.stopDown}, move:
function(
a){this.touch || this.mouseDown && !this.stoppedDown || this.modifyFeature(
a.xy);
return!0}, up:
function(
a){this.mouseDown = !1; this.stoppedDown = this.stopDown;
if (!this.checkModifiers(
a) || this.lastUp && this.lastUp.equals(
a.xy) || !
this.lastDown ||
841 !
this.passesTolerance(
this.lastDown,
a.xy,
this.pixelTolerance))
return!0; this.touch && this.modifyFeature(
a.xy); this.persist && this.destroyPersistedFeature(); this.lastUp =
a.xy; this.finalize();
return!this.stopUp}, mouseout:
function(
a){
OpenLayers.Util.mouseLeft(
a, this.map.viewPortDiv) && (this.stoppedDown = this.stopDown, this.mouseDown = !1)}, passesTolerance:
function(
a,
b,
c){var
d = !0;
null !=
c &&
a &&
b &&
a.distanceTo(
b) >
c && (
d = !1);
return d}, CLASS_NAME:
"OpenLayers.Handler.Point"});
OpenLayers.Handler.Path =
OpenLayers.Class(
OpenLayers.Handler.Point, {line:null, maxVertices:null, doubleTouchTolerance:20, freehand:!1, freehandToggle:
"shiftKey", timerId:null, redoStack:null, createFeature:function(
a){
a = this.layer.getLonLatFromViewPortPx(
a);
a =
new OpenLayers.Geometry.Point(
a.lon,
a.lat);
this.point =
new OpenLayers.Feature.Vector(
a);
this.line =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.LineString([
this.point.geometry]));
this.callback(
"create", [
this.point.geometry,
this.getSketch()]);
842 this.point.geometry.clearBounds();
this.layer.addFeatures([
this.line,
this.point], {silent:!0})}, destroyFeature:
function(
a){
OpenLayers.Handler.Point.prototype.destroyFeature.call(
this,
a); this.line =
null}, destroyPersistedFeature:
function(){var
a = this.layer;
a && 2 <
a.features.length && this.layer.features[0].destroy()}, removePoint:
function(){this.point && this.layer.removeFeatures([this.point])}, addPoint:
function(
a){this.layer.removeFeatures([this.point]);
a = this.layer.getLonLatFromViewPortPx(
a); this.point =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(
a.lon,
843 a.lat)); this.line.geometry.addComponent(this.point.geometry,
this.line.geometry.components.length); this.layer.addFeatures([this.point]); this.callback(
"point", [this.point.geometry,
this.getGeometry()]); this.callback(
"modify", [this.point.geometry,
this.getSketch()]); this.drawFeature();
delete this.redoStack}, insertXY:
function(
a,
b){this.line.geometry.addComponent(
new OpenLayers.Geometry.Point(
a,
b),
this.getCurrentPointIndex()); this.drawFeature();
delete this.redoStack}, insertDeltaXY:
function(
a,
b){var
c = this.getCurrentPointIndex() -
844 1,
c = this.line.geometry.components[
c]; !
c || (isNaN(
c.x) || isNaN(
c.y)) || this.insertXY(
c.x +
a,
c.y +
b)}, insertDirectionLength:
function(
a,
b){
a *=
Math.PI / 180; var
c =
b *
Math.cos(
a),
d =
b *
Math.sin(
a); this.insertDeltaXY(
c,
d)}, insertDeflectionLength:
function(
a,
b){var
c = this.getCurrentPointIndex() - 1;
if (0 <
c){var
d = this.line.geometry.components[
c],
c = this.line.geometry.components[
c - 1],
d =
Math.atan2(
d.y -
c.y,
d.x -
c.x); this.insertDirectionLength(180 *
d /
Math.PI +
a,
b)}}, getCurrentPointIndex:
function(){
return this.line.geometry.components.length -
8451}, undo:
function(){var
a = this.line.geometry,
b =
a.components,
c = this.getCurrentPointIndex() - 1,
d =
b[
c],
e =
a.removeComponent(
d);
e && (this.touch && 0 <
c && (
b =
a.components,
a =
b[
c - 1],
c = this.getCurrentPointIndex(),
b =
b[
c],
b.x =
a.x,
b.y =
a.y), this.redoStack || (this.redoStack = []), this.redoStack.push(
d), this.drawFeature());
return e}, redo:
function(){var
a = this.redoStack && this.redoStack.pop();
a && (this.line.geometry.addComponent(
a, this.getCurrentPointIndex()), this.drawFeature());
return!!
a}, freehandMode:
function(
a){
return this.freehandToggle &&
846 a[this.freehandToggle]?!this.freehand:this.freehand}, modifyFeature:
function(
a,
b){this.line || this.createFeature(
a); var
c = this.layer.getLonLatFromViewPortPx(
a); this.point.geometry.x =
c.lon; this.point.geometry.y =
c.lat; this.callback(
"modify", [this.point.geometry,
this.getSketch(),
b]); this.point.geometry.clearBounds(); this.drawFeature()}, drawFeature:
function(){this.layer.drawFeature(this.line, this.
style); this.layer.drawFeature(this.point, this.
style)}, getSketch:
function(){
return this.line}, getGeometry:
function(){var
a =
847 this.line && this.line.geometry;
a && this.multi && (
a =
new OpenLayers.Geometry.MultiLineString([
a]));
return a}, touchstart:
function(
a){
if (this.timerId && this.passesTolerance(this.lastTouchPx,
a.xy,
this.doubleTouchTolerance))
return this.finishGeometry(), window.clearTimeout(this.timerId), this.timerId =
null, !1; this.timerId && (window.clearTimeout(this.timerId), this.timerId =
null); this.timerId = window.setTimeout(
OpenLayers.Function.bind(
function(){this.timerId = null},
this), 300);
return OpenLayers.Handler.Point.prototype.touchstart.call(
this,
848 a)}, down:
function(
a){var
b = this.stopDown; this.freehandMode(
a) && (
b = !0, this.touch && (this.modifyFeature(
a.xy, !!
this.lastUp),
OpenLayers.Event.stop(
a))); this.touch || this.lastDown && this.passesTolerance(this.lastDown,
a.xy,
this.pixelTolerance) || this.modifyFeature(
a.xy, !!
this.lastUp); this.mouseDown = !0; this.lastDown =
a.xy; this.stoppedDown =
b;
return!
b}, move:
function(
a){
if (this.stoppedDown && this.freehandMode(
a))
return this.persist && this.destroyPersistedFeature(), this.maxVertices && this.line && this.line.geometry.components.length ===
849 this.maxVertices?(this.removePoint(), this.finalize()):
this.addPoint(
a.xy), !1; this.touch || this.mouseDown && !this.stoppedDown || this.modifyFeature(
a.xy, !!
this.lastUp);
return!0}, up:
function(
a){!this.mouseDown || this.lastUp && this.lastUp.equals(
a.xy) || (this.stoppedDown && this.freehandMode(
a)?(this.persist && this.destroyPersistedFeature(), this.removePoint(), this.finalize()):
this.passesTolerance(
this.lastDown,
a.xy,
this.pixelTolerance) && (
this.touch &&
this.modifyFeature(
a.xy), null ==
this.lastUp &&
this.persist &&
this.destroyPersistedFeature(),
850 this.addPoint(
a.xy),
this.lastUp =
a.xy,
this.line.geometry.components.length ===
this.maxVertices + 1 &&
this.finishGeometry())); this.stoppedDown = this.stopDown; this.mouseDown = !1;
return!this.stopUp}, finishGeometry:
function(){this.line.geometry.removeComponent(this.line.geometry.components[
this.line.geometry.components.length - 1]); this.removePoint(); this.finalize()}, dblclick:
function(
a){this.freehandMode(
a) || this.finishGeometry();
return!1}, CLASS_NAME:
"OpenLayers.Handler.Path"});
OpenLayers.Spherical =
OpenLayers.Spherical || {};
OpenLayers.Spherical.DEFAULT_RADIUS = 6378137;
OpenLayers.Spherical.computeDistanceBetween =
function(
a,
b,
c){
c =
c ||
OpenLayers.Spherical.DEFAULT_RADIUS; var
d =
Math.sin(
Math.PI * (
b.lon -
a.lon) / 360),
e =
Math.sin(
Math.PI * (
b.lat -
a.lat) / 360);
a =
e *
e +
d *
d *
Math.cos(
Math.PI *
a.lat / 180) *
Math.cos(
Math.PI *
b.lat / 180);
return 2 *
c *
Math.atan2(
Math.sqrt(
a),
Math.sqrt(1 -
a))};
851 OpenLayers.Spherical.computeHeading =
function(
a,
b){var
c =
Math.sin(
Math.PI * (
a.lon -
b.lon) / 180) *
Math.cos(
Math.PI *
b.lat / 180),
d =
Math.cos(
Math.PI *
a.lat / 180) *
Math.sin(
Math.PI *
b.lat / 180) -
Math.sin(
Math.PI *
a.lat / 180) *
Math.cos(
Math.PI *
b.lat / 180) *
Math.cos(
Math.PI * (
a.lon -
b.lon) / 180);
return 180 *
Math.atan2(
c,
d) /
Math.PI};
OpenLayers.Control.CacheWrite =
OpenLayers.Class(
OpenLayers.Control, {layers:null, imageFormat:
"image/png", quotaRegEx:/quota/
i, setMap:function(
a){
OpenLayers.Control.prototype.setMap.apply(
this, arguments); var
b,
c = this.layers ||
a.layers;
for (
b =
c.length - 1; 0 <=
b; --
b)
this.addLayer({layer:c[b]});
if (!this.layers)
a.events.on({addlayer:this.addLayer, removeLayer:this.removeLayer, scope:this})}, addLayer:
function(
a){
a.layer.events.on({tileloadstart:this.makeSameOrigin, tileloaded:this.onTileLoaded, scope:
this})}, removeLayer:
function(
a){
a.layer.events.un({tileloadstart:this.makeSameOrigin,
852 tileloaded:this.onTileLoaded, scope:
this})}, makeSameOrigin:
function(
a){
if (this.active && (
a =
a.tile,
a instanceof
OpenLayers.Tile.Image && !
a.crossOriginKeyword &&
"data:" !==
a.url.substr(0, 5))){var
b =
OpenLayers.Request.makeSameOrigin(
a.url,
OpenLayers.ProxyHost);
OpenLayers.Control.CacheWrite.urlMap[
b] =
a.url;
a.url =
b}}, onTileLoaded:
function(
a){this.active && (!
a.aborted &&
a.tile instanceof
OpenLayers.Tile.Image &&
"data:" !==
a.tile.url.substr(0, 5)) && (this.
cache({tile:
a.tile}),
delete OpenLayers.Control.CacheWrite.urlMap[
a.tile.url])},
853 cache:
function(
a){
if (window.localStorage){
a =
a.tile;
try{var
b =
a.getCanvasContext();
b && window.localStorage.setItem(
"olCache_" + (
OpenLayers.Control.CacheWrite.urlMap[
a.url] ||
a.url),
b.canvas.toDataURL(
this.imageFormat))}
catch (
c){(
b =
c.name ||
c.message) && this.quotaRegEx.test(
b)?this.events.triggerEvent(
"cachefull", {tile:
a}):
OpenLayers.
Console.error(
c.toString())}}}, destroy:function(){
if (this.layers || this.map){var
a,
b = this.layers || this.map.layers;
for (
a =
b.length - 1; 0 <=
a; --
a)this.removeLayer({layer:
b[
a]})}this.map &&
854 this.map.events.un({addlayer:this.addLayer, removeLayer:this.removeLayer, scope:
this});
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Control.CacheWrite"});
OpenLayers.Control.CacheWrite.clearCache =
function(){
if (window.localStorage){var
a,
b;
for (
a = window.localStorage.length - 1; 0 <=
a; --
a)
b = window.localStorage.key(
a),
"olCache_" ===
b.substr(0, 8) && window.localStorage.removeItem(
b)}};
OpenLayers.Control.CacheWrite.urlMap = {};
OpenLayers.Format.Context =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {layerOptions:null, layerParams:null, read:function(
a,
b){var
c =
OpenLayers.Format.XML.VersionedOGC.prototype.read.apply(
this, arguments);
if (
b &&
b.map)
if (this.context =
c,
b.map instanceof
OpenLayers.Map)
c =
this.mergeContextToMap(
c,
b.map);
else{var d = b.map; if (OpenLayers.Util.isElement(d) ||
"string" == typeof d)d = {div:d};
c =
this.contextToMap(
c,
d)}
return c}, getLayerFromContext:
function(
a){var
b,
c,
d = {queryable:
a.queryable, visibility:
a.visibility,
855 maxExtent:
a.maxExtent, metadata:
OpenLayers.Util.applyDefaults(
a.metadata, {styles:a.styles, formats:a.formats,
"abstract":a[
"abstract"], dataURL:a.dataURL}), numZoomLevels:
a.numZoomLevels, units:
a.units, isBaseLayer:
a.isBaseLayer, opacity:
a.opacity, displayInLayerSwitcher:
a.displayInLayerSwitcher, singleTile:
a.singleTile, tileSize:
a.tileSize?
new OpenLayers.Size(
a.tileSize.width,
a.tileSize.height):
void 0, minScale:
a.minScale ||
a.maxScaleDenominator, maxScale:
a.maxScale ||
a.minScaleDenominator, srs:
a.srs, dimensions:
a.dimensions,
856 metadataURL:
a.metadataURL}; this.layerOptions &&
OpenLayers.Util.applyDefaults(
d, this.layerOptions); var
e = {layers:
a.name, transparent:
a.transparent,
version:
a.version};
if (
a.formats && 0 <
a.formats.length)
for (
e.format =
a.formats[0].value,
b = 0,
c =
a.formats.length;
b <
c;
b++){var
f =
a.formats[
b];
if (!0 ==
f.current){
e.format =
f.value;
break}}
if (
a.styles && 0 <
a.styles.length)
for (
b = 0,
c =
a.styles.length;
b <
c;
b++)
if (
f =
a.styles[
b], !0 ==
f.current){
f.href?
e.sld =
f.href:
f.body?
e.sld_body =
f.body:
e.styles =
f.name;
break}this.layerParams &&
857 OpenLayers.Util.applyDefaults(
e, this.layerParams);
b =
null;
c =
a.service;
c ==
OpenLayers.Format.Context.serviceTypes.WFS?(
d.strategies = [
new OpenLayers.Strategy.BBOX],
d.protocol =
new OpenLayers.Protocol.WFS({url:
a.url, featurePrefix:
a.name.split(
":")[0], featureType:
a.name.split(
":").pop()}),
b =
new OpenLayers.Layer.Vector(
a.title ||
a.name,
d)):
c ==
OpenLayers.Format.Context.serviceTypes.KML?(
d.strategies = [
new OpenLayers.Strategy.Fixed],
d.protocol =
new OpenLayers.Protocol.HTTP({url:
a.url, format:
new OpenLayers.Format.KML}),
858 b =
new OpenLayers.Layer.Vector(
a.title ||
a.name,
d)):
c ==
OpenLayers.Format.Context.serviceTypes.GML?(
d.strategies = [
new OpenLayers.Strategy.Fixed],
d.protocol =
new OpenLayers.Protocol.HTTP({url:
a.url, format:
new OpenLayers.Format.GML}),
b =
new OpenLayers.Layer.Vector(
a.title ||
a.name,
d)):
a.features?(
b =
new OpenLayers.Layer.Vector(
a.title ||
a.name,
d),
b.addFeatures(
a.features)):!0 !==
a.categoryLayer && (
b =
new OpenLayers.Layer.WMS(
a.title ||
a.name,
a.url,
e,
d));
return b}, getLayersFromContext:
function(
a){
for (var
b = [],
c =
859 0,
d =
a.length;
c <
d;
c++){var
e = this.getLayerFromContext(
a[
c]);
null !==
e &&
b.push(
e)}
return b}, contextToMap:
function(
a,
b){
b =
OpenLayers.Util.applyDefaults({maxExtent:
a.maxExtent, projection:
a.projection, units:
a.units},
b);
b.maxExtent && (
b.maxResolution =
b.maxExtent.getWidth() /
OpenLayers.Map.TILE_WIDTH);
b.metadata = {contactInformation:
a.contactInformation,
"abstract":
a[
"abstract"], keywords:
a.keywords, logo:
a.logo, descriptionURL:
a.descriptionURL}; var
c =
new OpenLayers.Map(
b);
c.addLayers(this.getLayersFromContext(
a.layersContext));
860 c.setCenter(
a.bounds.getCenterLonLat(),
c.getZoomForExtent(
a.bounds, !0));
return c}, mergeContextToMap:
function(
a,
b){
b.addLayers(this.getLayersFromContext(
a.layersContext));
return b}, write:
function(
a,
b){
a = this.toContext(
a);
return OpenLayers.Format.XML.VersionedOGC.prototype.write.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Format.Context"});
861 OpenLayers.Format.Context.serviceTypes = {WMS:
"urn:ogc:serviceType:WMS", WFS:
"urn:ogc:serviceType:WFS", WCS:
"urn:ogc:serviceType:WCS",
GML:
"urn:ogc:serviceType:GML", SLD:
"urn:ogc:serviceType:SLD", FES:
"urn:ogc:serviceType:FES", KML:
"urn:ogc:serviceType:KML"};
OpenLayers.Format.WMC =
OpenLayers.Class(
OpenLayers.Format.Context, {defaultVersion:
"1.1.0", layerToContext:function(
a){var
b = this.getParser(),
c = {queryable:
a.queryable, visibility:
a.visibility, name:
a.params.LAYERS, title:
a.name,
"abstract":
a.metadata[
"abstract"], dataURL:
a.metadata.dataURL, metadataURL:
a.metadataURL, server:{
version:
a.params.VERSION, url:
a.url}, maxExtent:
a.maxExtent, transparent:
a.params.TRANSPARENT, numZoomLevels:
a.numZoomLevels, units:
a.units, isBaseLayer:
a.isBaseLayer, opacity:1 ==
a.opacity?
void 0:
862 a.opacity, displayInLayerSwitcher:
a.displayInLayerSwitcher, singleTile:
a.singleTile, tileSize:
a.singleTile || !
a.tileSize?
void 0:{width:
a.tileSize.w, height:
a.tileSize.h}, minScale:
a.options.resolutions ||
a.options.scales ||
a.options.maxResolution ||
a.options.minScale?
a.minScale:
void 0, maxScale:
a.options.resolutions ||
a.options.scales ||
a.options.minResolution ||
a.options.maxScale?
a.maxScale:
void 0, formats:[], styles:[], srs:
a.srs, dimensions:
a.dimensions};
a.metadata.servertitle && (
c.server.title =
a.metadata.servertitle);
863 if (
a.metadata.formats && 0 <
a.metadata.formats.length)
for (var
d = 0,
e =
a.metadata.formats.length;
d <
e;
d++){var
f =
a.metadata.formats[
d];
c.formats.push({value:
f.value, current:
f.value ==
a.params.FORMAT})}
else c.formats.push({value:
a.params.FORMAT, current:!0});
if (
a.metadata.styles && 0 <
a.metadata.styles.length)
for (
d = 0,
e =
a.metadata.styles.length;
d <
e;
d++)
b =
a.metadata.styles[
d],
b.current =
b.href ==
a.params.SLD ||
b.body ==
a.params.SLD_BODY ||
b.name ==
a.params.STYLES?!0:!1,
c.styles.push(
b);
else c.styles.push({href:
a.params.SLD,
864 body:
a.params.SLD_BODY, name:
a.params.STYLES ||
b.defaultStyleName, title:
b.defaultStyleTitle, current:!0});
return c}, toContext:
function(
a){var
b = {},
c =
a.layers;
if (
"OpenLayers.Map" ==
a.CLASS_NAME){var
d =
a.metadata || {};
b.size =
a.getSize();
b.bounds =
a.getExtent();
b.projection =
a.projection;
b.title =
a.title;
b.keywords =
d.keywords;
b[
"abstract"] =
d[
"abstract"];
b.logo =
d.logo;
b.descriptionURL =
d.descriptionURL;
b.contactInformation =
d.contactInformation;
b.maxExtent =
a.maxExtent}
else OpenLayers.Util.applyDefaults(
b,
a),
void 0 !=
865 b.layers &&
delete b.layers;
void 0 ==
b.layersContext && (
b.layersContext = []);
if (
void 0 !=
c &&
OpenLayers.Util.isArray(
c))
for (
a = 0,
d =
c.length;
a <
d;
a++){var
e =
c[
a];
e instanceof
OpenLayers.Layer.WMS &&
b.layersContext.push(this.layerToContext(
e))}
return b}, CLASS_NAME:
"OpenLayers.Format.WMC"});
OpenLayers.Format.WMC.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {
namespaces:{ol:
"http://openlayers.org/context", wmc:
"http://www.opengis.net/context", sld:
"http://www.opengis.net/sld", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, schemaLocation:
"", getNamespacePrefix:
function(
a){var
b =
null;
if (
null ==
a)
b = this.
namespaces[this.defaultPrefix];
else for (
b in this.
namespaces)
if (this.namespaces[
b] ==
a)
break;
return b}, defaultPrefix:
"wmc", rootPrefix:
null, defaultStyleName:
"",
866 defaultStyleTitle:
"Default", initialize:
function(
a){
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a])}, read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a =
a.documentElement; this.rootPrefix =
a.prefix; var
b = {
version:
a.getAttribute(
"version")}; this.runChildNodes(
b,
a);
return b}, runChildNodes:
function(
a,
b){
for (var
c =
b.childNodes,
d,
e,
f,
g = 0,
h =
c.length;
g <
h; ++
g)
d =
c[
g], 1 ==
d.nodeType && (
e = this.getNamespacePrefix(
d.namespaceURI),
f =
d.nodeName.split(
":").pop(),
867 (
e =
this[
"read_" +
e +
"_" +
f]) &&
e.apply(
this, [
a,
d]))}, read_wmc_General:
function(
a,
b){this.runChildNodes(
a,
b)}, read_wmc_BoundingBox:
function(
a,
b){
a.projection =
b.getAttribute(
"SRS");
a.bounds =
new OpenLayers.Bounds(
b.getAttribute(
"minx"),
b.getAttribute(
"miny"),
b.getAttribute(
"maxx"),
b.getAttribute(
"maxy"))}, read_wmc_LayerList:
function(
a,
b){
a.layersContext = []; this.runChildNodes(
a,
b)}, read_wmc_Layer:
function(
a,
b){var
c = {visibility:
"1" !=
b.getAttribute(
"hidden"), queryable:
"1" ==
b.getAttribute(
"queryable"), formats:[],
868 styles:[], metadata:{}}; this.runChildNodes(
c,
b);
a.layersContext.push(
c)}, read_wmc_Extension:
function(
a,
b){this.runChildNodes(
a,
b)}, read_ol_units:
function(
a,
b){
a.units = this.getChildValue(
b)}, read_ol_maxExtent:
function(
a,
b){var
c =
new OpenLayers.Bounds(
b.getAttribute(
"minx"),
b.getAttribute(
"miny"),
b.getAttribute(
"maxx"),
b.getAttribute(
"maxy"));
a.maxExtent =
c}, read_ol_transparent:
function(
a,
b){
a.transparent = this.getChildValue(
b)}, read_ol_numZoomLevels:
function(
a,
b){
a.numZoomLevels = parseInt(this.getChildValue(
b))},
869 read_ol_opacity:
function(
a,
b){
a.opacity = parseFloat(this.getChildValue(
b))}, read_ol_singleTile:
function(
a,
b){
a.singleTile =
"true" == this.getChildValue(
b)}, read_ol_tileSize:
function(
a,
b){var
c = {width:
b.getAttribute(
"width"), height:
b.getAttribute(
"height")};
a.tileSize =
c}, read_ol_isBaseLayer:
function(
a,
b){
a.isBaseLayer =
"true" == this.getChildValue(
b)}, read_ol_displayInLayerSwitcher:
function(
a,
b){
a.displayInLayerSwitcher =
"true" == this.getChildValue(
b)}, read_wmc_Server:
function(
a,
b){
a.version =
b.getAttribute(
"version");
870 a.url = this.getOnlineResource_href(
b);
a.metadata.servertitle =
b.getAttribute(
"title")}, read_wmc_FormatList:
function(
a,
b){this.runChildNodes(
a,
b)}, read_wmc_Format:
function(
a,
b){var
c = {value:this.getChildValue(
b)};
"1" ==
b.getAttribute(
"current") && (
c.current = !0);
a.formats.push(
c)}, read_wmc_StyleList:
function(
a,
b){this.runChildNodes(
a,
b)}, read_wmc_Style:
function(
a,
b){var
c = {}; this.runChildNodes(
c,
b);
"1" ==
b.getAttribute(
"current") && (
c.current = !0);
a.styles.push(
c)}, read_wmc_SLD:
function(
a,
b){this.runChildNodes(
a,
871 b)}, read_sld_StyledLayerDescriptor:
function(
a,
b){var
c =
OpenLayers.Format.XML.prototype.write.apply(
this, [
b]);
a.body =
c}, read_sld_FeatureTypeStyle:
function(
a,
b){var
c =
OpenLayers.Format.XML.prototype.write.apply(
this, [
b]);
a.body =
c}, read_wmc_OnlineResource:
function(
a,
b){
a.href = this.getAttributeNS(
b, this.namespaces.xlink,
"href")}, read_wmc_Name:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.name =
c)}, read_wmc_Title:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.title =
c)}, read_wmc_MetadataURL:
function(
a,
872 b){
a.metadataURL = this.getOnlineResource_href(
b)}, read_wmc_KeywordList:
function(
a,
b){
a.keywords = []; this.runChildNodes(
a.keywords,
b)}, read_wmc_Keyword:
function(
a,
b){
a.push(this.getChildValue(
b))}, read_wmc_Abstract:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a[
"abstract"] =
c)}, read_wmc_LogoURL:
function(
a,
b){
a.logo = {width:
b.getAttribute(
"width"), height:
b.getAttribute(
"height"), format:
b.getAttribute(
"format"), href:this.getOnlineResource_href(
b)}}, read_wmc_DescriptionURL:
function(
a,
b){
a.descriptionURL =
873 this.getOnlineResource_href(
b)}, read_wmc_ContactInformation:
function(
a,
b){var
c = {}; this.runChildNodes(
c,
b);
a.contactInformation =
c}, read_wmc_ContactPersonPrimary:
function(
a,
b){var
c = {}; this.runChildNodes(
c,
b);
a.personPrimary =
c}, read_wmc_ContactPerson:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.person =
c)}, read_wmc_ContactOrganization:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.organization =
c)}, read_wmc_ContactPosition:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.position =
c)}, read_wmc_ContactAddress:
function(
a,
874 b){var
c = {}; this.runChildNodes(
c,
b);
a.contactAddress =
c}, read_wmc_AddressType:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.type =
c)}, read_wmc_Address:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.address =
c)}, read_wmc_City:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.city =
c)}, read_wmc_StateOrProvince:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.stateOrProvince =
c)}, read_wmc_PostCode:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.postcode =
c)}, read_wmc_Country:
function(
a,
b){var
c = this.getChildValue(
b);
875 c && (
a.country =
c)}, read_wmc_ContactVoiceTelephone:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.phone =
c)}, read_wmc_ContactFacsimileTelephone:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.fax =
c)}, read_wmc_ContactElectronicMailAddress:
function(
a,
b){var
c = this.getChildValue(
b);
c && (
a.email =
c)}, read_wmc_DataURL:
function(
a,
b){
a.dataURL = this.getOnlineResource_href(
b)}, read_wmc_LegendURL:
function(
a,
b){var
c = {width:
b.getAttribute(
"width"), height:
b.getAttribute(
"height"), format:
b.getAttribute(
"format"),
876 href:this.getOnlineResource_href(
b)};
a.legend =
c}, read_wmc_DimensionList:
function(
a,
b){
a.dimensions = {}; this.runChildNodes(
a.dimensions,
b)}, read_wmc_Dimension:
function(
a,
b){var
c = {name:
b.getAttribute(
"name").toLowerCase(), units:
b.getAttribute(
"units") ||
"", unitSymbol:
b.getAttribute(
"unitSymbol") ||
"", userValue:
b.getAttribute(
"userValue") ||
"", nearestValue:
"1" ===
b.getAttribute(
"nearestValue"), multipleValues:
"1" ===
b.getAttribute(
"multipleValues"), current:
"1" ===
b.getAttribute(
"current"),
"default":
b.getAttribute(
"default") ||
877 ""},
d = this.getChildValue(
b);
c.values =
d.split(
",");
a[
c.name] =
c}, write:
function(
a,
b){var
c = this.createElementDefaultNS(
"ViewContext"); this.setAttributes(
c, {
version:this.VERSION, id:
b &&
"string" == typeof
b.id?
b.id:
OpenLayers.Util.createUniqueID(
"OpenLayers_Context_")}); this.setAttributeNS(
c, this.namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
c.appendChild(this.write_wmc_General(
a));
c.appendChild(this.write_wmc_LayerList(
a));
return OpenLayers.Format.XML.prototype.write.apply(
this, [
c])}, createElementDefaultNS:
function(
a,
878 b,
c){
a = this.createElementNS(this.namespaces[this.defaultPrefix],
a);
b &&
a.appendChild(this.createTextNode(
b));
c && this.setAttributes(
a,
c);
return a}, setAttributes:
function(
a,
b){var
c,
d;
for (
d in
b)
c =
b[
d].toString(),
c.match(/[
A-
Z]/)?this.setAttributeNS(
a,
null,
d,
c):
a.setAttribute(
d,
c)}, write_wmc_General:function(
a){var
b = this.createElementDefaultNS(
"General");
a.size &&
b.appendChild(this.createElementDefaultNS(
"Window",
null, {width:
a.size.w, height:
a.size.h})); var
c =
a.bounds;
b.appendChild(this.createElementDefaultNS(
"BoundingBox",
879 null, {minx:
c.left.toPrecision(18), miny:
c.bottom.toPrecision(18), maxx:
c.right.toPrecision(18), maxy:
c.top.toPrecision(18), SRS:
a.projection}));
b.appendChild(this.createElementDefaultNS(
"Title",
a.title));
a.keywords &&
b.appendChild(this.write_wmc_KeywordList(
a.keywords));
a[
"abstract"] &&
b.appendChild(this.createElementDefaultNS(
"Abstract",
a[
"abstract"]));
a.logo &&
b.appendChild(this.write_wmc_URLType(
"LogoURL",
a.logo.href,
a.logo));
a.descriptionURL &&
b.appendChild(this.write_wmc_URLType(
"DescriptionURL",
a.descriptionURL));
880 a.contactInformation &&
b.appendChild(this.write_wmc_ContactInformation(
a.contactInformation));
b.appendChild(this.write_ol_MapExtension(
a));
return b}, write_wmc_KeywordList:
function(
a){
for (var
b = this.createElementDefaultNS(
"KeywordList"),
c = 0,
d =
a.length;
c <
d;
c++)
b.appendChild(this.createElementDefaultNS(
"Keyword",
a[
c]));
return b}, write_wmc_ContactInformation:
function(
a){var
b = this.createElementDefaultNS(
"ContactInformation");
a.personPrimary &&
b.appendChild(this.write_wmc_ContactPersonPrimary(
a.personPrimary));
881 a.position &&
b.appendChild(this.createElementDefaultNS(
"ContactPosition",
a.position));
a.contactAddress &&
b.appendChild(this.write_wmc_ContactAddress(
a.contactAddress));
a.phone &&
b.appendChild(this.createElementDefaultNS(
"ContactVoiceTelephone",
a.phone));
a.fax &&
b.appendChild(this.createElementDefaultNS(
"ContactFacsimileTelephone",
a.fax));
a.email &&
b.appendChild(this.createElementDefaultNS(
"ContactElectronicMailAddress",
a.email));
return b}, write_wmc_ContactPersonPrimary:
function(
a){var
b = this.createElementDefaultNS(
"ContactPersonPrimary");
882 a.person &&
b.appendChild(this.createElementDefaultNS(
"ContactPerson",
a.person));
a.organization &&
b.appendChild(this.createElementDefaultNS(
"ContactOrganization",
a.organization));
return b}, write_wmc_ContactAddress:
function(
a){var
b = this.createElementDefaultNS(
"ContactAddress");
a.type &&
b.appendChild(this.createElementDefaultNS(
"AddressType",
a.type));
a.address &&
b.appendChild(this.createElementDefaultNS(
"Address",
a.address));
a.city &&
b.appendChild(this.createElementDefaultNS(
"City",
a.city));
a.stateOrProvince &&
883 b.appendChild(this.createElementDefaultNS(
"StateOrProvince",
a.stateOrProvince));
a.postcode &&
b.appendChild(this.createElementDefaultNS(
"PostCode",
a.postcode));
a.country &&
b.appendChild(this.createElementDefaultNS(
"Country",
a.country));
return b}, write_ol_MapExtension:
function(
a){var
b = this.createElementDefaultNS(
"Extension");
if (
a =
a.maxExtent){var
c = this.createElementNS(this.namespaces.ol,
"ol:maxExtent"); this.setAttributes(
c, {minx:
a.left.toPrecision(18), miny:
a.bottom.toPrecision(18), maxx:
a.right.toPrecision(18),
884 maxy:
a.top.toPrecision(18)});
b.appendChild(
c)}
return b}, write_wmc_LayerList:
function(
a){
for (var
b = this.createElementDefaultNS(
"LayerList"),
c = 0,
d =
a.layersContext.length;
c <
d; ++
c)
b.appendChild(this.write_wmc_Layer(
a.layersContext[
c]));
return b}, write_wmc_Layer:
function(
a){var
b = this.createElementDefaultNS(
"Layer",
null, {queryable:
a.queryable?
"1":
"0", hidden:
a.visibility?
"0":
"1"});
b.appendChild(this.write_wmc_Server(
a));
b.appendChild(this.createElementDefaultNS(
"Name",
a.name));
b.appendChild(this.createElementDefaultNS(
"Title",
885 a.title));
a[
"abstract"] &&
b.appendChild(this.createElementDefaultNS(
"Abstract",
a[
"abstract"]));
a.dataURL &&
b.appendChild(this.write_wmc_URLType(
"DataURL",
a.dataURL));
a.metadataURL &&
b.appendChild(this.write_wmc_URLType(
"MetadataURL",
a.metadataURL));
return b}, write_wmc_LayerExtension:
function(
a){var
b = this.createElementDefaultNS(
"Extension"),
c =
a.maxExtent,
d = this.createElementNS(this.namespaces.ol,
"ol:maxExtent"); this.setAttributes(
d, {minx:
c.left.toPrecision(18), miny:
c.bottom.toPrecision(18), maxx:
c.right.toPrecision(18),
886 maxy:
c.top.toPrecision(18)});
b.appendChild(
d);
a.tileSize && !
a.singleTile && (
c = this.createElementNS(this.namespaces.ol,
"ol:tileSize"), this.setAttributes(
c,
a.tileSize),
b.appendChild(
c));
for (var
c =
"transparent numZoomLevels units isBaseLayer opacity displayInLayerSwitcher singleTile".split(
" "),
e = 0,
f =
c.length;
e <
f; ++
e)(
d = this.createOLPropertyNode(
a,
c[
e])) &&
b.appendChild(
d);
return b}, createOLPropertyNode:
function(
a,
b){var
c =
null;
null !=
a[
b] && (
c = this.createElementNS(this.namespaces.ol,
"ol:" +
b),
c.appendChild(this.createTextNode(
a[
b].toString())));
887 return c}, write_wmc_Server:
function(
a){
a =
a.server; var
b = this.createElementDefaultNS(
"Server"),
c = {service:
"OGC:WMS",
version:
a.version};
a.title && (
c.title =
a.title); this.setAttributes(
b,
c);
b.appendChild(this.write_wmc_OnlineResource(
a.url));
return b}, write_wmc_URLType:
function(
a,
b,
c){
a = this.createElementDefaultNS(
a);
a.appendChild(this.write_wmc_OnlineResource(
b));
if (
c){
b = [
"width",
"height",
"format"];
for (var
d = 0;
d <
b.length;
d++)
b[
d]in
c &&
a.setAttribute(
b[
d],
c[
b[
d]])}
return a}, write_wmc_DimensionList:
function(
a){var
b =
888 this.createElementDefaultNS(
"DimensionList"),
c;
for (
c in
a.dimensions){var
d = {},
e =
a.dimensions[
c],
f;
for (
f in
e)
d[
f] =
"boolean" == typeof
e[
f]?
Number(
e[
f]):
e[
f];
e =
"";
d.values && (
e =
d.values.join(
","),
delete d.values);
b.appendChild(this.createElementDefaultNS(
"Dimension",
e,
d))}
return b}, write_wmc_FormatList:
function(
a){
for (var
b = this.createElementDefaultNS(
"FormatList"),
c = 0,
d =
a.formats.length;
c <
d;
c++){var
e =
a.formats[
c];
b.appendChild(this.createElementDefaultNS(
"Format",
e.value,
e.current && !0 ==
e.current?{current:
"1"}:
889 null))}
return b}, write_wmc_StyleList:
function(
a){var
b = this.createElementDefaultNS(
"StyleList");
if ((
a =
a.styles) &&
OpenLayers.Util.isArray(
a))
for (var
c,
d = 0,
e =
a.length;
d <
e;
d++){var
f =
a[
d],
g = this.createElementDefaultNS(
"Style",
null,
f.current && !0 ==
f.current?{current:
"1"}:
null);
f.href?(
c = this.createElementDefaultNS(
"SLD"),
f.name &&
c.appendChild(this.createElementDefaultNS(
"Name",
f.name)),
f.title &&
c.appendChild(this.createElementDefaultNS(
"Title",
f.title)),
f.legend &&
c.appendChild(this.write_wmc_URLType(
"LegendURL",
890 f.legend.href,
f.legend)),
f = this.write_wmc_OnlineResource(
f.href),
c.appendChild(
f),
g.appendChild(
c)):
f.body?(
c =
this.createElementDefaultNS(
"SLD"),
f.name &&
c.appendChild(
this.createElementDefaultNS(
"Name",
f.name)),
f.title &&
c.appendChild(
this.createElementDefaultNS(
"Title",
f.title)),
f.legend &&
c.appendChild(
this.write_wmc_URLType(
"LegendURL",
f.legend.href,
f.legend)),
f =
OpenLayers.
Format.
XML.
prototype.read.apply(
this, [
f.body]).documentElement,
c.ownerDocument &&
c.ownerDocument.importNode && (
f =
c.ownerDocument.importNode(
f,
891 !0)),
c.appendChild(
f),
g.appendChild(
c)):(
g.appendChild(
this.createElementDefaultNS(
"Name",
f.name)),
g.appendChild(
this.createElementDefaultNS(
"Title",
f.title)),
f[
"abstract"] &&
g.appendChild(
this.createElementDefaultNS(
"Abstract",
f[
"abstract"])),
f.legend &&
g.appendChild(
this.write_wmc_URLType(
"LegendURL",
f.legend.href,
f.legend)));
b.appendChild(
g)}
return b}, write_wmc_OnlineResource:
function(
a){var
b = this.createElementDefaultNS(
"OnlineResource"); this.setAttributeNS(
b, this.namespaces.xlink,
"xlink:type",
892 "simple"); this.setAttributeNS(
b, this.namespaces.xlink,
"xlink:href",
a);
return b}, getOnlineResource_href:
function(
a){var
b = {};
a =
a.getElementsByTagName(
"OnlineResource"); 0 <
a.length && this.read_wmc_OnlineResource(
b,
a[0]);
return b.href}, CLASS_NAME:
"OpenLayers.Format.WMC.v1"});
OpenLayers.Control.PanPanel =
OpenLayers.Class(
OpenLayers.Control.Panel, {slideFactor:50, slideRatio:null, initialize:function(
a){
OpenLayers.Control.Panel.prototype.initialize.apply(
this, [
a]);
a = {slideFactor:this.slideFactor, slideRatio:this.slideRatio}; this.addControls([
new OpenLayers.Control.Pan(
OpenLayers.Control.Pan.NORTH,
a),
new OpenLayers.Control.Pan(
OpenLayers.Control.Pan.SOUTH,
a),
new OpenLayers.Control.Pan(
OpenLayers.Control.Pan.EAST,
a),
new OpenLayers.Control.Pan(
OpenLayers.Control.Pan.WEST,
a)])},
893 CLASS_NAME:
"OpenLayers.Control.PanPanel"});
OpenLayers.Control.Attribution =
OpenLayers.Class(
OpenLayers.Control, {separator:
", ", template:
"${layers}", destroy:function(){this.map.events.un({removelayer:this.updateAttribution, addlayer:this.updateAttribution, changelayer:this.updateAttribution, changebaselayer:this.updateAttribution, scope:
this});
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments); this.map.events.on({changebaselayer:this.updateAttribution, changelayer:this.updateAttribution,
894 addlayer:this.updateAttribution, removelayer:this.updateAttribution, scope:
this}); this.updateAttribution();
return this.div}, updateAttribution:
function(){var
a = [];
if (this.map && this.map.layers){
for (var
b = 0,
c = this.map.layers.length;
b <
c;
b++){var
d = this.map.layers[
b];
d.attribution &&
d.getVisibility() && - 1 ===
OpenLayers.Util.indexOf(
a,
d.attribution) &&
a.push(
d.attribution)}this.div.innerHTML =
OpenLayers.String.format(this.
template, {layers:
a.join(this.separator)})}}, CLASS_NAME:
"OpenLayers.Control.Attribution"});
OpenLayers.Kinetic =
OpenLayers.Class({threshold:0, deceleration:0.0035, nbPoints:100, delay:200, points:
void 0, timerId:
void 0, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a)}, begin:
function(){
OpenLayers.Animation.stop(this.timerId); this.timerId =
void 0; this.points = []},
update:
function(
a){this.points.unshift({xy:
a, tick:(
new Date).getTime()}); this.points.length > this.nbPoints && this.points.pop()}, end:
function(
a){
for (var
b,
c = (
new Date).getTime(),
d = 0,
e = this.points.length,
f;
d <
e;
d++){
f = this.points[
d];
if (
c -
895 f.tick >
this.delay)
break;
b =
f}
if (
b && (
d = (
new Date).getTime() -
b.tick,
c =
Math.sqrt(
Math.pow(
a.x -
b.xy.x, 2) +
Math.pow(
a.y -
b.xy.y, 2)),
d =
c /
d, !(0 ==
d ||
d <
this.threshold)))
return c =
Math.asin((
a.y -
b.xy.y) /
c),
b.xy.x <=
a.x && (
c =
Math.PI -
c), {speed:
d, theta:
c}}, move:
function(
a,
b){var
c =
a.speed,
d =
Math.cos(
a.theta),
e = -
Math.sin(
a.theta),
f = (
new Date).getTime(),
g = 0,
h = 0; this.timerId =
OpenLayers.Animation.start(
OpenLayers.Function.bind(
function(){if (null != this.timerId){var a = (new Date).getTime() - f, l = - this.deceleration * Math.pow(a,
896 2) / 2 + c * a, m = l * d, l = l * e, n, p; n = !1; 0 >= - this.deceleration * a + c && (OpenLayers.Animation.stop(this.timerId), this.timerId = null, n = !0); a = m - g; p = l - h; g = m; h = l; b(a, p, n)}},
this))}, CLASS_NAME:
"OpenLayers.Kinetic"});
OpenLayers.Format.WPSExecute =
OpenLayers.Class(
OpenLayers.Format.XML,
OpenLayers.Format.Filter.v1_1_0, {
namespaces:{ows:
"http://www.opengis.net/ows/1.1", gml:
"http://www.opengis.net/gml", wps:
"http://www.opengis.net/wps/1.0.0", wfs:
"http://www.opengis.net/wfs", ogc:
"http://www.opengis.net/ogc", wcs:
"http://www.opengis.net/wcs", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, VERSION:
"1.0.0",
897 schemaLocation:
"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd", schemaLocationAttr:
function(
a){}, write:
function(
a){var
b; window.ActiveXObject?this.xmldom =
b =
new ActiveXObject(
"Microsoft.XMLDOM"):
b =
document.implementation.createDocument(
"",
"", null);
a = this.writeNode(
"wps:Execute",
a,
b); this.setAttributeNS(
a, this.namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
a])}, read:
function(
a){
"string" == typeof
a && (
a =
898 OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
b = {}; this.readNode(
a,
b);
return b}, writers:{wps:{Execute:
function(
a){var
b = this.createElementNSPlus(
"wps:Execute", {attributes:{
version:this.VERSION, service:
"WPS"}}); this.writeNode(
"ows:Identifier",
a.identifier,
b); this.writeNode(
"wps:DataInputs",
a.dataInputs,
b); this.writeNode(
"wps:ResponseForm",
a.responseForm,
b);
return b}, ResponseForm:
function(
a){var
b = this.createElementNSPlus(
"wps:ResponseForm", {});
a.rawDataOutput &&
899 this.writeNode(
"wps:RawDataOutput",
a.rawDataOutput,
b);
a.responseDocument && this.writeNode(
"wps:ResponseDocument",
a.responseDocument,
b);
return b}, ResponseDocument:
function(
a){var
b = this.createElementNSPlus(
"wps:ResponseDocument", {attributes:{storeExecuteResponse:
a.storeExecuteResponse, lineage:
a.lineage, status:
a.status}});
if (
a.outputs)
for (var
c = 0,
d =
a.outputs.length;
c <
d;
c++)this.writeNode(
"wps:Output",
a.outputs[
c],
b);
return b}, Output:
function(
a){var
b = this.createElementNSPlus(
"wps:Output", {attributes:{asReference:
a.asReference,
900 mimeType:
a.mimeType, encoding:
a.encoding, schema:
a.schema}}); this.writeNode(
"ows:Identifier",
a.identifier,
b); this.writeNode(
"ows:Title",
a.title,
b); this.writeNode(
"ows:Abstract",
a[
"abstract"],
b);
return b}, RawDataOutput:
function(
a){var
b = this.createElementNSPlus(
"wps:RawDataOutput", {attributes:{mimeType:
a.mimeType, encoding:
a.encoding, schema:
a.schema}}); this.writeNode(
"ows:Identifier",
a.identifier,
b);
return b}, DataInputs:
function(
a){
for (var
b = this.createElementNSPlus(
"wps:DataInputs", {}),
c = 0,
d =
a.length;
c <
901 d; ++
c)this.writeNode(
"wps:Input",
a[
c],
b);
return b}, Input:
function(
a){var
b = this.createElementNSPlus(
"wps:Input", {}); this.writeNode(
"ows:Identifier",
a.identifier,
b);
a.title && this.writeNode(
"ows:Title",
a.title,
b);
a.data && this.writeNode(
"wps:Data",
a.data,
b);
a.reference && this.writeNode(
"wps:Reference",
a.reference,
b);
a.boundingBoxData && this.writeNode(
"wps:BoundingBoxData",
a.boundingBoxData,
b);
return b}, Data:
function(
a){var
b = this.createElementNSPlus(
"wps:Data", {});
a.literalData?this.writeNode(
"wps:LiteralData",
902 a.literalData,
b):
a.complexData?
this.writeNode(
"wps:ComplexData",
a.complexData,
b):
a.boundingBoxData &&
this.writeNode(
"ows:BoundingBox",
a.boundingBoxData,
b);
return b}, LiteralData:
function(
a){
return this.createElementNSPlus(
"wps:LiteralData", {attributes:{uom:
a.uom}, value:
a.value})}, ComplexData:
function(
a){var
b = this.createElementNSPlus(
"wps:ComplexData", {attributes:{mimeType:
a.mimeType, encoding:
a.encoding, schema:
a.schema}}),
c =
a.value;
"string" === typeof
c?
b.appendChild(this.getXMLDoc().createCDATASection(
a.value)):
903 b.appendChild(
c);
return b}, Reference:
function(
a){var
b = this.createElementNSPlus(
"wps:Reference", {attributes:{mimeType:
a.mimeType,
"xlink:href":
a.href, method:
a.method, encoding:
a.encoding, schema:
a.schema}});
a.body && this.writeNode(
"wps:Body",
a.body,
b);
return b}, BoundingBoxData:
function(
a,
b){this.writers.ows.BoundingBox.apply(
this, [
a,
b,
"wps:BoundingBoxData"])}, Body:
function(
a){var
b = this.createElementNSPlus(
"wps:Body", {});
a.wcs?this.writeNode(
"wcs:GetCoverage",
a.wcs,
b):
a.wfs?(
this.featureType =
a.wfs.featureType,
904 this.
version =
a.wfs.
version,
this.writeNode(
"wfs:GetFeature",
a.wfs,
b)):
this.writeNode(
"wps:Execute",
a,
b);
return b}}, wcs:
OpenLayers.Format.WCSGetCoverage.prototype.writers.wcs, wfs:
OpenLayers.Format.WFST.v1_1_0.prototype.writers.wfs, ogc:
OpenLayers.Format.Filter.v1_1_0.prototype.writers.ogc, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows}, readers:{wps:{ExecuteResponse:
function(
a,
b){
b.executeResponse = {lang:
a.getAttribute(
"lang"), statusLocation:
a.getAttribute(
"statusLocation"), serviceInstance:
a.getAttribute(
"serviceInstance"),
905 service:
a.getAttribute(
"service")}; this.readChildNodes(
a,
b.executeResponse)}, Process:
function(
a,
b){
b.process = {}; this.readChildNodes(
a,
b.process)}, Status:
function(
a,
b){
b.status = {creationTime:
a.getAttribute(
"creationTime")}; this.readChildNodes(
a,
b.status)}, ProcessSucceeded:
function(
a,
b){
b.processSucceeded = !0}, ProcessOutputs:
function(
a,
b){
b.processOutputs = []; this.readChildNodes(
a,
b.processOutputs)}, Output:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.push(
c)}, Reference:
function(
a,
b){
b.reference =
906{href:
a.getAttribute(
"href"), mimeType:
a.getAttribute(
"mimeType"), encoding:
a.getAttribute(
"encoding"), schema:
a.getAttribute(
"schema")}}, Data:
function(
a,
b){
b.data = {}; this.readChildNodes(
a,
b)}, LiteralData:
function(
a,
b){
b.literalData = {dataType:
a.getAttribute(
"dataType"), uom:
a.getAttribute(
"uom"), value:this.getChildValue(
a)}}, ComplexData:
function(
a,
b){
b.complexData = {mimeType:
a.getAttribute(
"mimeType"), schema:
a.getAttribute(
"schema"), encoding:
a.getAttribute(
"encoding"), value:
""};
if (this.isSimpleContent(
a)){var
c;
907 for (
c =
a.firstChild;
c;
c =
c.nextSibling)
switch (
c.nodeType){
case 3:
case 4:
b.complexData.value +=
c.nodeValue}}
else for (
c =
a.firstChild;
c;
c =
c.nextSibling)1 ==
c.nodeType && (
b.complexData.value =
c)}, BoundingBox:
function(
a,
b){
b.boundingBoxData = {dimensions:
a.getAttribute(
"dimensions"), crs:
a.getAttribute(
"crs")}; this.readChildNodes(
a,
b.boundingBoxData)}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WPSExecute"});
OpenLayers.Layer.GeoRSS =
OpenLayers.Class(
OpenLayers.Layer.Markers, {location:null, features:null, formatOptions:null, selectedFeature:null, icon:null, popupSize:null, useFeedTitle:!0, initialize:function(
a,
b,
c){
OpenLayers.Layer.Markers.prototype.initialize.apply(
this, [
a,
c]); this.location =
b; this.features = []}, destroy:
function(){
OpenLayers.Layer.Markers.prototype.destroy.apply(
this, arguments); this.clearFeatures(); this.features =
null}, loadRSS:
function(){this.loaded || (this.events.triggerEvent(
"loadstart"),
OpenLayers.Request.GET({url:this.location,
908 success:this.parseData, scope:this}),
this.loaded = !0)},
moveTo:
function(
a,
b,
c){
OpenLayers.Layer.Markers.prototype.moveTo.apply(
this, arguments); this.visibility && !this.loaded && this.loadRSS()}, parseData:
function(
a){var
b =
a.responseXML;
b &&
b.documentElement || (
b =
OpenLayers.Format.XML.prototype.read(
a.responseText));
if (this.useFeedTitle){
a =
null;
try{
a =
b.getElementsByTagNameNS(
"*",
"title")[0].firstChild.nodeValue}
catch (
c){
a =
b.getElementsByTagName(
"title")[0].firstChild.nodeValue}
a && this.setName(
a)}
a = {};
OpenLayers.Util.extend(
a,
909 this.formatOptions); this.map && !this.projection.equals(this.map.getProjectionObject()) && (
a.externalProjection = this.projection,
a.internalProjection = this.map.getProjectionObject());
b = (
new OpenLayers.Format.GeoRSS(
a)).read(
b);
a = 0;
for (var
d =
b.length;
a <
d;
a++){var
e = {},
f =
b[
a];
if (
f.geometry){var
g =
f.attributes.title?
f.attributes.title:
"Untitled",
h =
f.attributes.description?
f.attributes.description:
"No description.",
k =
f.attributes.link?
f.attributes.link:
"",
f =
f.geometry.getBounds().getCenterLonLat();
e.icon =
910 null == this.icon?
OpenLayers.Marker.defaultIcon():this.icon.clone();
e.popupSize = this.popupSize?this.popupSize.clone():
new OpenLayers.Size(250, 120);
if (
g ||
h){
e.title =
g;
e.description =
h; var
l =
'<div class="olLayerGeoRSSClose">[x]</div>',
l =
l +
'<div class="olLayerGeoRSSTitle">';
k && (
l +=
'<a class="link" href="' +
k +
'" target="_blank">');
l +=
g;
k && (
l +=
"</a>");
l +=
"</div>";
l +=
'<div style="" class="olLayerGeoRSSDescription">';
l +=
h;
l +=
"</div>";
e.popupContentHTML =
l}
f =
new OpenLayers.Feature(
this,
f,
e); this.features.push(
f);
911 e =
f.createMarker();
e.events.register(
"click",
f, this.markerClick); this.addMarker(
e)}}this.events.triggerEvent(
"loadend")}, markerClick:
function(
a){var
b =
this == this.layer.selectedFeature; this.layer.selectedFeature =
b?
null:
this;
for (var
c = 0,
d = this.layer.map.popups.length;
c <
d;
c++)this.layer.map.removePopup(this.layer.map.popups[
c]);
b || (
b = this.createPopup(),
OpenLayers.Event.observe(
b.div,
"click",
OpenLayers.Function.bind(
function(){for (var a = 0, b = this.layer.map.popups.length; a < b; a++)this.layer.map.removePopup(this.layer.map.popups[a])},
912 this)), this.layer.map.addPopup(
b));
OpenLayers.Event.stop(
a)}, clearFeatures:
function(){
if (
null != this.features)
for (; 0 < this.features.length; ){var
a = this.features[0];
OpenLayers.Util.removeItem(this.features,
a);
a.destroy()}}, CLASS_NAME:
"OpenLayers.Layer.GeoRSS"});
OpenLayers.Symbolizer.Point =
OpenLayers.Class(
OpenLayers.Symbolizer, {initialize:function(
a){
OpenLayers.Symbolizer.prototype.initialize.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Symbolizer.Point"});
OpenLayers.Symbolizer.Line =
OpenLayers.Class(
OpenLayers.Symbolizer, {initialize:function(
a){
OpenLayers.Symbolizer.prototype.initialize.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Symbolizer.Line"});
OpenLayers.Symbolizer.Text =
OpenLayers.Class(
OpenLayers.Symbolizer, {initialize:function(
a){
OpenLayers.Symbolizer.prototype.initialize.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Symbolizer.Text"});
OpenLayers.Format.SLD.v1 =
OpenLayers.Class(
OpenLayers.Format.Filter.v1_0_0, {
namespaces:{sld:
"http://www.opengis.net/sld", ogc:
"http://www.opengis.net/ogc", gml:
"http://www.opengis.net/gml", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, defaultPrefix:
"sld", schemaLocation:
null, multipleSymbolizers:!1, featureTypeCounter:
null, defaultSymbolizer:{fillColor:
"#808080", fillOpacity:1, strokeColor:
"#000000", strokeOpacity:1, strokeWidth:1, strokeDashstyle:
"solid", pointRadius:3,
913 graphicName:
"square"}, read:
function(
a,
b){
b =
OpenLayers.Util.applyDefaults(
b, this.options); var
c = {namedLayers:!0 ===
b.namedLayersAsArray?[]:{}}; this.readChildNodes(
a,
c);
return c}, readers:
OpenLayers.Util.applyDefaults({sld:{StyledLayerDescriptor:
function(
a,
b){
b.version =
a.getAttribute(
"version"); this.readChildNodes(
a,
b)}, Name:
function(
a,
b){
b.name = this.getChildValue(
a)}, Title:
function(
a,
b){
b.title = this.getChildValue(
a)}, Abstract:
function(
a,
b){
b.description = this.getChildValue(
a)}, NamedLayer:
function(
a,
b){var
c =
914{userStyles:[], namedStyles:[]}; this.readChildNodes(
a,
c);
for (var
d = 0,
e =
c.userStyles.length;
d <
e; ++
d)
c.userStyles[
d].layerName =
c.name;
OpenLayers.Util.isArray(
b.namedLayers)?
b.namedLayers.push(
c):
b.namedLayers[
c.name] =
c}, NamedStyle:
function(
a,
b){
b.namedStyles.push(this.getChildName(
a.firstChild))}, UserStyle:
function(
a,
b){var
c = {defaultsPerSymbolizer:!0, rules:[]}; this.featureTypeCounter = - 1; this.readChildNodes(
a,
c); this.multipleSymbolizers?(
delete c.defaultsPerSymbolizer,
c =
new OpenLayers.Style2(
c)):
c = new
OpenLayers.
Style(
this.defaultSymbolizer,
915 c);
b.userStyles.push(
c)}, IsDefault:
function(
a,
b){
"1" == this.getChildValue(
a) && (
b.isDefault = !0)}, FeatureTypeStyle:
function(
a,
b){++this.featureTypeCounter; var
c = {rules:this.multipleSymbolizers?
b.rules:[]}; this.readChildNodes(
a,
c); this.multipleSymbolizers || (
b.rules =
c.rules)}, Rule:
function(
a,
b){var
c; this.multipleSymbolizers && (
c = {symbolizers:[]});
c =
new OpenLayers.Rule(
c); this.readChildNodes(
a,
c);
b.rules.push(
c)}, ElseFilter:
function(
a,
b){
b.elseFilter = !0}, MinScaleDenominator:
function(
a,
b){
b.minScaleDenominator =
916 parseFloat(this.getChildValue(
a))}, MaxScaleDenominator:
function(
a,
b){
b.maxScaleDenominator = parseFloat(this.getChildValue(
a))}, TextSymbolizer:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c); this.multipleSymbolizers?(
c.zIndex = this.featureTypeCounter,
b.symbolizers.push(
new OpenLayers.Symbolizer.Text(
c))):
b.symbolizer.Text =
OpenLayers.
Util.
applyDefaults(
c,
b.symbolizer.Text)}, LabelPlacement:function(
a,
b){this.readChildNodes(
a,
b)}, PointPlacement:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
c.labelRotation =
917 c.rotation;
delete c.rotation; var
d,
e =
b.labelAnchorPointX,
f =
b.labelAnchorPointY;
e <= 1 / 3?
d =
"l":
e > 1 / 3 &&
e < 2 / 3?
d =
"c":
e >= 2 / 3 && (
d =
"r");
f <= 1 / 3?
d +=
"b":
f > 1 / 3 &&
f < 2 / 3?
d +=
"m":
f >= 2 / 3 && (
d +=
"t");
c.labelAlign =
d;
OpenLayers.Util.applyDefaults(
b,
c)}, AnchorPoint:
function(
a,
b){this.readChildNodes(
a,
b)}, AnchorPointX:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.labelAnchorPointX =
c)}, AnchorPointY:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.labelAnchorPointY =
c)}, Displacement:
function(
a,
918 b){this.readChildNodes(
a,
b)}, DisplacementX:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.labelXOffset =
c)}, DisplacementY:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.labelYOffset =
c)}, LinePlacement:
function(
a,
b){this.readChildNodes(
a,
b)}, PerpendicularOffset:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.labelPerpendicularOffset =
c)}, Label:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.label =
c)}, Font:
function(
a,
b){this.readChildNodes(
a,
919 b)}, Halo:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.haloRadius =
c.haloRadius;
b.haloColor =
c.fillColor;
b.haloOpacity =
c.fillOpacity}, Radius:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
null !=
c && (
b.haloRadius =
c)}, RasterSymbolizer:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c); this.multipleSymbolizers?(
c.zIndex = this.featureTypeCounter,
b.symbolizers.push(
new OpenLayers.Symbolizer.Raster(
c))):
b.symbolizer.Raster =
OpenLayers.
Util.
applyDefaults(
c,
b.symbolizer.Raster)},
Geometry:function(
a,
920 b){
b.geometry = {}; this.readChildNodes(
a,
b.geometry)}, ColorMap:
function(
a,
b){
b.colorMap = []; this.readChildNodes(
a,
b.colorMap)}, ColorMapEntry:
function(
a,
b){var
c =
a.getAttribute(
"quantity"),
d =
a.getAttribute(
"opacity");
b.push({color:
a.getAttribute(
"color"), quantity:
null !==
c?parseFloat(
c):void 0, label:
a.getAttribute(
"label") || void 0, opacity:null !==
d?parseFloat(
d):void 0})}, LineSymbolizer:function(
a,
b){var
c = {}; this.readChildNodes(
a,
c); this.multipleSymbolizers?(
c.zIndex = this.featureTypeCounter,
b.symbolizers.push(
new OpenLayers.Symbolizer.Line(
c))):
921 b.symbolizer.
Line =
OpenLayers.
Util.
applyDefaults(
c,
b.symbolizer.
Line)}, PolygonSymbolizer:function(
a,
b){var
c = {fill:!1, stroke:!1}; this.multipleSymbolizers || (
c =
b.symbolizer.Polygon ||
c); this.readChildNodes(
a,
c); this.multipleSymbolizers?(
c.zIndex = this.featureTypeCounter,
b.symbolizers.push(
new OpenLayers.Symbolizer.Polygon(
c))):
b.symbolizer.
Polygon =
c}, PointSymbolizer:function(
a,
b){var
c = {fill:!1, stroke:!1, graphic:!1}; this.multipleSymbolizers || (
c =
b.symbolizer.Point ||
c); this.readChildNodes(
a,
c); this.multipleSymbolizers?
922 (
c.zIndex = this.featureTypeCounter,
b.symbolizers.push(
new OpenLayers.Symbolizer.Point(
c))):
b.symbolizer.
Point =
c}, Stroke:function(
a,
b){
b.stroke = !0; this.readChildNodes(
a,
b)}, Fill:
function(
a,
b){
b.fill = !0; this.readChildNodes(
a,
b)}, CssParameter:
function(
a,
b){var
c =
a.getAttribute(
"name"),
d = this.cssMap[
c];
b.label && (
"fill" ===
c?
d =
"fontColor":
"fill-opacity" ===
c && (
d =
"fontOpacity"));
d && (
c = this.readers.ogc._expression.call(
this,
a)) && (
b[
d] =
c)}, Graphic:
function(
a,
b){
b.graphic = !0; var
c = {}; this.readChildNodes(
a,
c);
923 for (var
d =
"stroke strokeColor strokeWidth strokeOpacity strokeLinecap fill fillColor fillOpacity graphicName rotation graphicFormat".split(
" "),
e,
f,
g = 0,
h =
d.length;
g <
h; ++
g)
e =
d[
g],
f =
c[
e],
void 0 !=
f && (
b[
e] =
f);
void 0 !=
c.opacity && (
b.graphicOpacity =
c.opacity);
void 0 !=
c.size && (isNaN(
c.size / 2)?
b.graphicWidth =
c.size:
b.pointRadius =
c.size / 2);
void 0 !=
c.href && (
b.externalGraphic =
c.href);
void 0 !=
c.rotation && (
b.rotation =
c.rotation)}, ExternalGraphic:
function(
a,
b){this.readChildNodes(
a,
b)}, Mark:
function(
a,
b){this.readChildNodes(
a,
924 b)}, WellKnownName:
function(
a,
b){
b.graphicName = this.getChildValue(
a)}, Opacity:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.opacity =
c)},
Size:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.size =
c)}, Rotation:
function(
a,
b){var
c = this.readers.ogc._expression.call(
this,
a);
c && (
b.rotation =
c)}, OnlineResource:
function(
a,
b){
b.href = this.getAttributeNS(
a, this.namespaces.xlink,
"href")},
Format:
function(
a,
b){
b.graphicFormat = this.getChildValue(
a)}}},
OpenLayers.Format.Filter.v1_0_0.prototype.readers),
925 cssMap:{stroke:
"strokeColor",
"stroke-opacity":
"strokeOpacity",
"stroke-width":
"strokeWidth",
"stroke-linecap":
"strokeLinecap",
"stroke-dasharray":
"strokeDashstyle", fill:
"fillColor",
"fill-opacity":
"fillOpacity",
"font-family":
"fontFamily",
"font-size":
"fontSize",
"font-weight":
"fontWeight",
"font-style":
"fontStyle"}, getCssProperty:
function(
a){var
b =
null,
c;
for (
c in this.cssMap)
if (this.cssMap[
c] ==
a){
b =
c;
break}
return b}, getGraphicFormat:
function(
a){var
b,
c;
for (
c in this.graphicFormats)
if (this.graphicFormats[
c].test(
a)){
b =
926 c;
break}
return b || this.defaultGraphicFormat}, defaultGraphicFormat:
"image/png", graphicFormats:{
"image/jpeg":/\.jpe?g$/
i,
"image/gif":/\.gif$/
i,
"image/png":/\.png$/
i}, write:
function(
a){
return this.writers.sld.StyledLayerDescriptor.apply(
this, [
a])}, writers:
OpenLayers.Util.applyDefaults({sld:{_OGCExpression:
function(
a,
b){var
c = this.createElementNSPlus(
a),
d =
"string" == typeof
b?
b.split(
"${"):[
b];
c.appendChild(this.createTextNode(
d[0]));
for (var
e,
f,
g = 1,
h =
d.length;
g <
h;
g++)
e =
d[
g],
f =
e.indexOf(
"}"), 0 <
f?(this.writeNode(
"ogc:PropertyName",
927{property:
e.substring(0,
f)},
c),
c.appendChild(
this.createTextNode(
e.substring(++
f)))):
c.appendChild(
this.createTextNode(
"${" +
e));
return c}, StyledLayerDescriptor:
function(
a){var
b = this.createElementNSPlus(
"sld:StyledLayerDescriptor", {attributes:{
version:this.VERSION,
"xsi:schemaLocation":this.schemaLocation}});
b.setAttribute(
"xmlns:ogc", this.namespaces.ogc);
b.setAttribute(
"xmlns:gml", this.namespaces.gml);
a.name && this.writeNode(
"Name",
a.name,
b);
a.title && this.writeNode(
"Title",
a.title,
b);
a.description &&
928 this.writeNode(
"Abstract",
a.description,
b);
if (
OpenLayers.Util.isArray(
a.namedLayers))
for (var
c = 0,
d =
a.namedLayers.length;
c <
d; ++
c)this.writeNode(
"NamedLayer",
a.namedLayers[
c],
b);
else for (
c in
a.namedLayers)this.writeNode(
"NamedLayer",
a.namedLayers[
c],
b);
return b}, Name:
function(
a){
return this.createElementNSPlus(
"sld:Name", {value:
a})}, Title:
function(
a){
return this.createElementNSPlus(
"sld:Title", {value:
a})}, Abstract:
function(
a){
return this.createElementNSPlus(
"sld:Abstract", {value:
a})}, NamedLayer:
function(
a){var
b =
929 this.createElementNSPlus(
"sld:NamedLayer"); this.writeNode(
"Name",
a.name,
b);
if (
a.namedStyles)
for (var
c = 0,
d =
a.namedStyles.length;
c <
d; ++
c)this.writeNode(
"NamedStyle",
a.namedStyles[
c],
b);
if (
a.userStyles)
for (
c = 0,
d =
a.userStyles.length;
c <
d; ++
c)this.writeNode(
"UserStyle",
a.userStyles[
c],
b);
return b}, NamedStyle:
function(
a){var
b = this.createElementNSPlus(
"sld:NamedStyle"); this.writeNode(
"Name",
a,
b);
return b}, UserStyle:
function(
a){var
b = this.createElementNSPlus(
"sld:UserStyle");
a.name && this.writeNode(
"Name",
930 a.name,
b);
a.title && this.writeNode(
"Title",
a.title,
b);
a.description && this.writeNode(
"Abstract",
a.description,
b);
a.isDefault && this.writeNode(
"IsDefault",
a.isDefault,
b);
if (this.multipleSymbolizers &&
a.rules){
for (var
c = {0:[]},
d = [0],
e,
f,
g,
h,
k,
l = 0,
m =
a.rules.length;
l <
m; ++
l)
if (
e =
a.rules[
l],
e.symbolizers){
f = {};
for (var
n = 0,
p =
e.symbolizers.length;
n <
p; ++
n)
g =
e.symbolizers[
n],
h =
g.zIndex,
h in
f || (
k =
e.clone(),
k.symbolizers = [],
f[
h] =
k),
f[
h].symbolizers.push(
g.clone());
for (
h in
f)
h in
c || (
d.push(
h),
c[
h] = []),
c[
h].push(
f[
h])}
else c[0].push(
e.clone());
931 d.sort();
l = 0;
for (
m =
d.length;
l <
m; ++
l)
e =
c[
d[
l]], 0 <
e.length && (
k =
a.clone(),
k.rules =
c[
d[
l]],
this.writeNode(
"FeatureTypeStyle",
k,
b))}
else this.writeNode(
"FeatureTypeStyle",
a,
b);
return b}, IsDefault:
function(
a){
return this.createElementNSPlus(
"sld:IsDefault", {value:
a?
"1":
"0"})}, FeatureTypeStyle:
function(
a){
for (var
b = this.createElementNSPlus(
"sld:FeatureTypeStyle"),
c = 0,
d =
a.rules.length;
c <
d; ++
c)this.writeNode(
"Rule",
a.rules[
c],
b);
return b}, Rule:
function(
a){var
b = this.createElementNSPlus(
"sld:Rule");
a.name &&
932 this.writeNode(
"Name",
a.name,
b);
a.title && this.writeNode(
"Title",
a.title,
b);
a.description && this.writeNode(
"Abstract",
a.description,
b);
a.elseFilter?this.writeNode(
"ElseFilter",
null,
b):
a.filter &&
this.writeNode(
"ogc:Filter",
a.filter,
b);
void 0 !=
a.minScaleDenominator && this.writeNode(
"MinScaleDenominator",
a.minScaleDenominator,
b);
void 0 !=
a.maxScaleDenominator && this.writeNode(
"MaxScaleDenominator",
a.maxScaleDenominator,
b); var
c,
d;
if (this.multipleSymbolizers &&
a.symbolizers)
for (var
e = 0,
f =
a.symbolizers.length;
e <
933 f; ++
e)
d =
a.symbolizers[
e],
c =
d.CLASS_NAME.split(
".").pop(), this.writeNode(
c +
"Symbolizer",
d,
b);
else for (var
f =
OpenLayers.Style.SYMBOLIZER_PREFIXES,
e = 0,
g =
f.length;
e <
g; ++
e)
c =
f[
e], (
d =
a.symbolizer[
c]) && this.writeNode(
c +
"Symbolizer",
d,
b);
return b}, ElseFilter:
function(){
return this.createElementNSPlus(
"sld:ElseFilter")}, MinScaleDenominator:
function(
a){
return this.createElementNSPlus(
"sld:MinScaleDenominator", {value:
a})}, MaxScaleDenominator:
function(
a){
return this.createElementNSPlus(
"sld:MaxScaleDenominator",
934{value:
a})}, LineSymbolizer:
function(
a){var
b = this.createElementNSPlus(
"sld:LineSymbolizer"); this.writeNode(
"Stroke",
a,
b);
return b}, Stroke:
function(
a){var
b = this.createElementNSPlus(
"sld:Stroke");
void 0 !=
a.strokeColor && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"strokeColor"},
b);
void 0 !=
a.strokeOpacity && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"strokeOpacity"},
b);
void 0 !=
a.strokeWidth && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"strokeWidth"},
b);
void 0 !=
a.strokeDashstyle &&
"solid" !==
935 a.strokeDashstyle && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"strokeDashstyle"},
b);
void 0 !=
a.strokeLinecap && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"strokeLinecap"},
b);
return b}, CssParameter:
function(
a){
return this.createElementNSPlus(
"sld:CssParameter", {attributes:{name:this.getCssProperty(
a.key)}, value:
a.symbolizer[
a.key]})}, TextSymbolizer:
function(
a){var
b = this.createElementNSPlus(
"sld:TextSymbolizer");
null !=
a.label && this.writeNode(
"Label",
a.label,
b);
null ==
a.fontFamily &&
null ==
a.fontSize &&
936 null ==
a.fontWeight &&
null ==
a.fontStyle || this.writeNode(
"Font",
a,
b);
null ==
a.labelAnchorPointX &&
null ==
a.labelAnchorPointY &&
null ==
a.labelAlign &&
null ==
a.labelXOffset &&
null ==
a.labelYOffset &&
null ==
a.labelRotation &&
null ==
a.labelPerpendicularOffset || this.writeNode(
"LabelPlacement",
a,
b);
null ==
a.haloRadius &&
null ==
a.haloColor &&
null ==
a.haloOpacity || this.writeNode(
"Halo",
a,
b);
null ==
a.fontColor &&
null ==
a.fontOpacity || this.writeNode(
"Fill", {fillColor:
a.fontColor, fillOpacity:
a.fontOpacity},
b);
return b}, LabelPlacement:
function(
a){var
b =
937 this.createElementNSPlus(
"sld:LabelPlacement");
null ==
a.labelAnchorPointX &&
null ==
a.labelAnchorPointY &&
null ==
a.labelAlign &&
null ==
a.labelXOffset &&
null ==
a.labelYOffset &&
null ==
a.labelRotation ||
null !=
a.labelPerpendicularOffset || this.writeNode(
"PointPlacement",
a,
b);
null !=
a.labelPerpendicularOffset && this.writeNode(
"LinePlacement",
a,
b);
return b}, LinePlacement:
function(
a){var
b = this.createElementNSPlus(
"sld:LinePlacement"); this.writeNode(
"PerpendicularOffset",
a.labelPerpendicularOffset,
b);
return b}, PerpendicularOffset:
function(
a){
return this.createElementNSPlus(
"sld:PerpendicularOffset",
938{value:
a})}, PointPlacement:
function(
a){var
b = this.createElementNSPlus(
"sld:PointPlacement");
null ==
a.labelAnchorPointX &&
null ==
a.labelAnchorPointY &&
null ==
a.labelAlign || this.writeNode(
"AnchorPoint",
a,
b);
null ==
a.labelXOffset &&
null ==
a.labelYOffset || this.writeNode(
"Displacement",
a,
b);
null !=
a.labelRotation && this.writeNode(
"Rotation",
a.labelRotation,
b);
return b}, AnchorPoint:
function(
a){var
b = this.createElementNSPlus(
"sld:AnchorPoint"),
c =
a.labelAnchorPointX,
d =
a.labelAnchorPointY;
null !=
c && this.writeNode(
"AnchorPointX",
939 c,
b);
null !=
d && this.writeNode(
"AnchorPointY",
d,
b);
if (
null ==
c &&
null ==
d){var
e =
a.labelAlign.substr(0, 1);
a =
a.labelAlign.substr(1, 1);
"l" ===
e?
c = 0:
"c" ===
e?
c = 0.5:
"r" ===
e && (
c = 1);
"b" ===
a?
d = 0:
"m" ===
a?
d = 0.5:
"t" ===
a && (
d = 1); this.writeNode(
"AnchorPointX",
c,
b); this.writeNode(
"AnchorPointY",
d,
b)}
return b}, AnchorPointX:
function(
a){
return this.createElementNSPlus(
"sld:AnchorPointX", {value:
a})}, AnchorPointY:
function(
a){
return this.createElementNSPlus(
"sld:AnchorPointY", {value:
a})}, Displacement:
function(
a){var
b = this.createElementNSPlus(
"sld:Displacement");
940 null !=
a.labelXOffset && this.writeNode(
"DisplacementX",
a.labelXOffset,
b);
null !=
a.labelYOffset && this.writeNode(
"DisplacementY",
a.labelYOffset,
b);
return b}, DisplacementX:
function(
a){
return this.createElementNSPlus(
"sld:DisplacementX", {value:
a})}, DisplacementY:
function(
a){
return this.createElementNSPlus(
"sld:DisplacementY", {value:
a})}, Font:
function(
a){var
b = this.createElementNSPlus(
"sld:Font");
a.fontFamily && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"fontFamily"},
b);
a.fontSize && this.writeNode(
"CssParameter",
941{symbolizer:
a, key:
"fontSize"},
b);
a.fontWeight && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"fontWeight"},
b);
a.fontStyle && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"fontStyle"},
b);
return b}, Label:
function(
a){
return this.writers.sld._OGCExpression.call(
this,
"sld:Label",
a)}, Halo:
function(
a){var
b = this.createElementNSPlus(
"sld:Halo");
a.haloRadius && this.writeNode(
"Radius",
a.haloRadius,
b); (
a.haloColor ||
a.haloOpacity) && this.writeNode(
"Fill", {fillColor:
a.haloColor, fillOpacity:
a.haloOpacity},
b);
942 return b}, Radius:
function(
a){
return this.createElementNSPlus(
"sld:Radius", {value:
a})}, RasterSymbolizer:
function(
a){var
b = this.createElementNSPlus(
"sld:RasterSymbolizer");
a.geometry && this.writeNode(
"Geometry",
a.geometry,
b);
a.opacity && this.writeNode(
"Opacity",
a.opacity,
b);
a.colorMap && this.writeNode(
"ColorMap",
a.colorMap,
b);
return b},
Geometry:
function(
a){var
b = this.createElementNSPlus(
"sld:Geometry");
a.property && this.writeNode(
"ogc:PropertyName",
a,
b);
return b}, ColorMap:
function(
a){
for (var
b = this.createElementNSPlus(
"sld:ColorMap"),
943 c = 0,
d =
a.length;
c <
d; ++
c)this.writeNode(
"ColorMapEntry",
a[
c],
b);
return b}, ColorMapEntry:
function(
a){var
b = this.createElementNSPlus(
"sld:ColorMapEntry");
b.setAttribute(
"color",
a.color);
void 0 !==
a.opacity &&
b.setAttribute(
"opacity", parseFloat(
a.opacity));
void 0 !==
a.quantity &&
b.setAttribute(
"quantity", parseFloat(
a.quantity));
void 0 !==
a.label &&
b.setAttribute(
"label",
a.label);
return b}, PolygonSymbolizer:
function(
a){var
b = this.createElementNSPlus(
"sld:PolygonSymbolizer"); !1 !==
a.fill && this.writeNode(
"Fill",
944 a,
b); !1 !==
a.stroke && this.writeNode(
"Stroke",
a,
b);
return b}, Fill:
function(
a){var
b = this.createElementNSPlus(
"sld:Fill");
a.fillColor && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"fillColor"},
b);
null !=
a.fillOpacity && this.writeNode(
"CssParameter", {symbolizer:
a, key:
"fillOpacity"},
b);
return b}, PointSymbolizer:
function(
a){var
b = this.createElementNSPlus(
"sld:PointSymbolizer"); this.writeNode(
"Graphic",
a,
b);
return b}, Graphic:
function(
a){var
b = this.createElementNSPlus(
"sld:Graphic");
void 0 !=
a.externalGraphic?
945 this.writeNode(
"ExternalGraphic",
a,
b):
this.writeNode(
"Mark",
a,
b);
void 0 !=
a.graphicOpacity && this.writeNode(
"Opacity",
a.graphicOpacity,
b);
void 0 !=
a.pointRadius?this.writeNode(
"Size", 2 *
a.pointRadius,
b):void 0 !=
a.graphicWidth &&
this.writeNode(
"Size",
a.graphicWidth,
b);
void 0 !=
a.rotation && this.writeNode(
"Rotation",
a.rotation,
b);
return b}, ExternalGraphic:
function(
a){var
b = this.createElementNSPlus(
"sld:ExternalGraphic"); this.writeNode(
"OnlineResource",
a.externalGraphic,
b);
a =
a.graphicFormat || this.getGraphicFormat(
a.externalGraphic);
946 this.writeNode(
"Format",
a,
b);
return b}, Mark:
function(
a){var
b = this.createElementNSPlus(
"sld:Mark");
a.graphicName && this.writeNode(
"WellKnownName",
a.graphicName,
b); !1 !==
a.fill && this.writeNode(
"Fill",
a,
b); !1 !==
a.stroke && this.writeNode(
"Stroke",
a,
b);
return b}, WellKnownName:
function(
a){
return this.createElementNSPlus(
"sld:WellKnownName", {value:
a})}, Opacity:
function(
a){
return this.createElementNSPlus(
"sld:Opacity", {value:
a})},
Size:
function(
a){
return this.writers.sld._OGCExpression.call(
this,
"sld:Size",
947 a)}, Rotation:
function(
a){
return this.createElementNSPlus(
"sld:Rotation", {value:
a})}, OnlineResource:
function(
a){
return this.createElementNSPlus(
"sld:OnlineResource", {attributes:{
"xlink:type":
"simple",
"xlink:href":
a}})},
Format:
function(
a){
return this.createElementNSPlus(
"sld:Format", {value:
a})}}},
OpenLayers.Format.Filter.v1_0_0.prototype.writers), CLASS_NAME:
"OpenLayers.Format.SLD.v1"});
OpenLayers.Layer.WMS =
OpenLayers.Class(
OpenLayers.Layer.Grid, {DEFAULT_PARAMS:{service:
"WMS",
version:
"1.1.1", request:
"GetMap", styles:
"", format:
"image/jpeg"}, isBaseLayer:!0, encodeBBOX:!1, noMagic:!1, yx:{}, initialize:
function(
a,
b,
c,
d){var
e = [];
c =
OpenLayers.Util.upperCaseObject(
c); 1.3 <= parseFloat(
c.VERSION) && !
c.EXCEPTIONS && (
c.EXCEPTIONS =
"INIMAGE");
e.push(
a,
b,
c,
d);
OpenLayers.Layer.Grid.prototype.initialize.apply(
this,
e);
OpenLayers.Util.applyDefaults(this.params,
OpenLayers.Util.upperCaseObject(
this.DEFAULT_PARAMS));
948 !this.noMagic && (this.params.TRANSPARENT &&
"true" == this.params.TRANSPARENT.toString().toLowerCase()) && (
null !=
d &&
d.isBaseLayer || (this.isBaseLayer = !1),
"image/jpeg" == this.params.FORMAT && (this.params.FORMAT =
OpenLayers.Util.alphaHack()?
"image/gif":
"image/png"))},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.WMS(this.name, this.url, this.params, this.getOptions()));
return a =
OpenLayers.Layer.Grid.prototype.clone.apply(
this, [
a])}, reverseAxisOrder:
function(){var
a = this.projection.getCode();
return 1.3 <= parseFloat(this.params.VERSION) &&
949 !!(this.yx[
a] ||
OpenLayers.Projection.defaults[
a] &&
OpenLayers.Projection.defaults[
a].yx)}, getURL:
function(
a){
a = this.adjustBounds(
a); var
b = this.getImageSize(),
c = {},
d = this.reverseAxisOrder();
c.BBOX = this.encodeBBOX?
a.toBBOX(
null,
d):
a.toArray(
d);
c.WIDTH =
b.w;
c.HEIGHT =
b.h;
return this.getFullRequestString(
c)}, mergeNewParams:
function(
a){
a = [
OpenLayers.Util.upperCaseObject(
a)];
return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(
this,
a)}, getFullRequestString:
function(
a,
b){var
c = this.map.getProjectionObject(),
950 c = this.projection && this.projection.equals(
c)?this.projection.getCode():
c.getCode(),
c =
"none" ==
c?
null:
c; 1.3 <= parseFloat(this.params.VERSION)?this.params.CRS =
c:this.params.SRS =
c;
"boolean" == typeof this.params.TRANSPARENT && (
a.TRANSPARENT = this.params.TRANSPARENT?
"TRUE":
"FALSE");
return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Layer.WMS"});
OpenLayers.Layer.KaMap =
OpenLayers.Class(
OpenLayers.Layer.Grid, {isBaseLayer:!0, DEFAULT_PARAMS:{
i:
"jpeg", map:
""}, initialize:
function(
a,
b,
c,
d){
OpenLayers.Layer.Grid.prototype.initialize.apply(
this, arguments); this.params =
OpenLayers.Util.applyDefaults(this.params, this.DEFAULT_PARAMS)}, getURL:
function(
a){
a = this.adjustBounds(
a); var
b = this.map.getResolution(),
c =
Math.round(1E4 * this.map.getScale()) / 1E4,
d =
Math.round(
a.left /
b);
a = -
Math.round(
a.top /
b);
return this.getFullRequestString({
t:
a,
l:
d,
s:
c})}, calculateGridLayout:
function(
a,
951 b,
c){
b =
c * this.tileSize.w;
c *= this.tileSize.h;
return{tilelon:
b, tilelat:
c, startcol:
Math.floor(
a.left /
b) - this.buffer, startrow:
Math.floor(
a.top /
c) + this.buffer}}, getTileBoundsForGridIndex:
function(
a,
b){this.getTileOrigin(); var
c = this.gridLayout,
d =
c.tilelon,
e =
c.tilelat,
f = (
c.startcol +
b) *
d,
c = (
c.startrow -
a) *
e;
return new OpenLayers.Bounds(
f,
c,
f +
d,
c +
e)},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.KaMap(this.name, this.url, this.params, this.getOptions()));
a =
OpenLayers.Layer.Grid.prototype.clone.apply(
this,
952 [
a]);
null != this.tileSize && (
a.tileSize = this.tileSize.clone());
a.grid = [];
return a}, getTileBounds:
function(
a){var
b = this.getResolution(),
c =
b * this.tileSize.w,
b =
b * this.tileSize.h,
d = this.getLonLatFromViewPortPx(
a);
a =
c *
Math.floor(
d.lon /
c);
d =
b *
Math.floor(
d.lat /
b);
return new OpenLayers.Bounds(
a,
d,
a +
c,
d +
b)}, CLASS_NAME:
"OpenLayers.Layer.KaMap"});
OpenLayers.Format.WMC.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.WMC.v1, {VERSION:
"1.1.0", schemaLocation:
"http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd", initialize:function(
a){
OpenLayers.Format.WMC.v1.prototype.initialize.apply(
this, [
a])}, read_sld_MinScaleDenominator:
function(
a,
b){var
c = parseFloat(this.getChildValue(
b)); 0 <
c && (
a.maxScale =
c)}, read_sld_MaxScaleDenominator:
function(
a,
b){
a.minScale = parseFloat(this.getChildValue(
b))}, read_wmc_SRS:
function(
a,
b){
"srs"in
953 a || (
a.srs = {});
a.srs[this.getChildValue(
b)] = !0}, write_wmc_Layer:
function(
a){var
b =
OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
this, [
a]);
if (
a.maxScale){var
c = this.createElementNS(this.namespaces.sld,
"sld:MinScaleDenominator");
c.appendChild(this.createTextNode(
a.maxScale.toPrecision(16)));
b.appendChild(
c)}
a.minScale && (
c = this.createElementNS(this.namespaces.sld,
"sld:MaxScaleDenominator"),
c.appendChild(this.createTextNode(
a.minScale.toPrecision(16))),
b.appendChild(
c));
if (
a.srs)
for (var
d in
a.srs)
b.appendChild(this.createElementDefaultNS(
"SRS",
954 d));
b.appendChild(this.write_wmc_FormatList(
a));
b.appendChild(this.write_wmc_StyleList(
a));
a.dimensions &&
b.appendChild(this.write_wmc_DimensionList(
a));
b.appendChild(this.write_wmc_LayerExtension(
a));
return b}, CLASS_NAME:
"OpenLayers.Format.WMC.v1_1_0"});
OpenLayers.Format.XLS =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.1.0", stringifyOutput:!0, CLASS_NAME:
"OpenLayers.Format.XLS"});
OpenLayers.Format.XLS.v1 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{xls:
"http://www.opengis.net/xls", gml:
"http://www.opengis.net/gml", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, xy:!0, defaultPrefix:
"xls", schemaLocation:
null, read:
function(
a,
b){OpenLayers.Util.applyDefaults(b, this.options); var c = {};
this.readChildNodes(
a,
c);
return c}, readers:{xls:{XLS:
function(
a,
b){
b.version =
a.getAttribute(
"version");
955 this.readChildNodes(
a,
b)},
Response:
function(
a,
b){this.readChildNodes(
a,
b)}, GeocodeResponse:
function(
a,
b){
b.responseLists = []; this.readChildNodes(
a,
b)}, GeocodeResponseList:
function(
a,
b){var
c = {features:[], numberOfGeocodedAddresses:parseInt(
a.getAttribute(
"numberOfGeocodedAddresses"))};
b.responseLists.push(
c); this.readChildNodes(
a,
c)}, GeocodedAddress:
function(
a,
b){var
c =
new OpenLayers.Feature.Vector;
b.features.push(
c); this.readChildNodes(
a,
c);
c.geometry =
c.components[0]}, GeocodeMatchCode:
function(
a,
b){
b.attributes.matchCode =
956{accuracy:parseFloat(
a.getAttribute(
"accuracy")), matchType:
a.getAttribute(
"matchType")}}, Address:
function(
a,
b){var
c = {countryCode:
a.getAttribute(
"countryCode"), addressee:
a.getAttribute(
"addressee"), street:[], place:[]};
b.attributes.address =
c; this.readChildNodes(
a,
c)}, freeFormAddress:
function(
a,
b){
b.freeFormAddress = this.getChildValue(
a)}, StreetAddress:
function(
a,
b){this.readChildNodes(
a,
b)}, Building:
function(
a,
b){
b.building = {number:
a.getAttribute(
"number"), subdivision:
a.getAttribute(
"subdivision"),
957 buildingName:
a.getAttribute(
"buildingName")}}, Street:
function(
a,
b){
b.street.push(this.getChildValue(
a))}, Place:
function(
a,
b){
b.place[
a.getAttribute(
"type")] = this.getChildValue(
a)}, PostalCode:
function(
a,
b){
b.postalCode = this.getChildValue(
a)}}, gml:
OpenLayers.Format.GML.v3.prototype.readers.gml}, write:
function(
a){
return this.writers.xls.XLS.apply(
this, [
a])}, writers:{xls:{XLS:
function(
a){var
b = this.createElementNSPlus(
"xls:XLS", {attributes:{
version:this.VERSION,
"xsi:schemaLocation":this.schemaLocation}});
958 this.writeNode(
"RequestHeader",
a.header,
b); this.writeNode(
"Request",
a,
b);
return b}, RequestHeader:
function(
a){
return this.createElementNSPlus(
"xls:RequestHeader")}, Request:
function(
a){var
b = this.createElementNSPlus(
"xls:Request", {attributes:{methodName:
"GeocodeRequest", requestID:
a.requestID ||
"",
version:this.VERSION}}); this.writeNode(
"GeocodeRequest",
a.addresses,
b);
return b}, GeocodeRequest:
function(
a){
for (var
b = this.createElementNSPlus(
"xls:GeocodeRequest"),
c = 0,
d =
a.length;
c <
d;
c++)this.writeNode(
"Address",
959 a[
c],
b);
return b}, Address:
function(
a){var
b = this.createElementNSPlus(
"xls:Address", {attributes:{countryCode:
a.countryCode}});
a.freeFormAddress?this.writeNode(
"freeFormAddress",
a.freeFormAddress,
b):(
a.street &&
this.writeNode(
"StreetAddress",
a,
b),
a.municipality &&
this.writeNode(
"Municipality",
a.municipality,
b),
a.countrySubdivision &&
this.writeNode(
"CountrySubdivision",
a.countrySubdivision,
b),
a.postalCode &&
this.writeNode(
"PostalCode",
a.postalCode,
b));
return b}, freeFormAddress:
function(
a){
return this.createElementNSPlus(
"freeFormAddress",
960{value:
a})}, StreetAddress:
function(
a){var
b = this.createElementNSPlus(
"xls:StreetAddress");
a.building && this.writeNode(
b,
"Building",
a.building);
a =
a.street;
OpenLayers.Util.isArray(
a) || (
a = [
a]);
for (var
c = 0,
d =
a.length;
c <
d;
c++)this.writeNode(
"Street",
a[
c],
b);
return b}, Building:
function(
a){
return this.createElementNSPlus(
"xls:Building", {attributes:{number:
a.number, subdivision:
a.subdivision, buildingName:
a.buildingName}})}, Street:
function(
a){
return this.createElementNSPlus(
"xls:Street", {value:
a})}, Municipality:
function(
a){
return this.createElementNSPlus(
"xls:Place",
961{attributes:{type:
"Municipality"}, value:
a})}, CountrySubdivision:
function(
a){
return this.createElementNSPlus(
"xls:Place", {attributes:{type:
"CountrySubdivision"}, value:
a})}, PostalCode:
function(
a){
return this.createElementNSPlus(
"xls:PostalCode", {value:
a})}}}, CLASS_NAME:
"OpenLayers.Format.XLS.v1"});
OpenLayers.Format.XLS.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.XLS.v1, {VERSION:
"1.1", schemaLocation:
"http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd", CLASS_NAME:
"OpenLayers.Format.XLS.v1_1_0"});
OpenLayers.Format.XLS.v1_1 =
OpenLayers.Format.XLS.v1_1_0;
OpenLayers.Renderer.SVG =
OpenLayers.Class(
OpenLayers.Renderer.Elements, {xmlns:
"http://www.w3.org/2000/svg", xlinkns:
"http://www.w3.org/1999/xlink", MAX_PIXEL:15E3, translationParameters:null, symbolMetrics:null, initialize:function(a){this.supported() && (OpenLayers.Renderer.Elements.prototype.initialize.apply(this, arguments), this.translationParameters = {x:0, y:0}, this.symbolMetrics = {})}, supported:
function(){return document.implementation && (document.implementation.hasFeature(
"org.w3c.svg",
"1.0") || document.implementation.hasFeature(
"http://www.w3.org/TR/SVG11/feature#SVG",
962 "1.1") || document.implementation.hasFeature(
"http://www.w3.org/TR/SVG11/feature#BasicStructure",
"1.1"))}, inValidRange:
function(
a,
b,
c){a += c?0:this.translationParameters.x; b += c?0:this.translationParameters.y; return a >= - this.MAX_PIXEL && a <= this.MAX_PIXEL && b >= - this.MAX_PIXEL && b <= this.MAX_PIXEL}, setExtent:
function(
a,
b){var c = OpenLayers.Renderer.Elements.prototype.setExtent.apply(this, arguments), d = this.getResolution(), e = - a.left / d, d = a.top / d; if (b)return this.left = e, this.top = d, this.rendererRoot.setAttributeNS(null,
963 "viewBox",
"0 0 " + this.size.w +
" " + this.size.h), this.translate(this.xOffset, 0), !0; (e = this.translate(e - this.left + this.xOffset, d - this.top)) || this.setExtent(a, !0); return c && e}, translate:
function(
a,
b){if (this.inValidRange(a, b, !0)){var c =
""; if (a || b)c =
"translate(" + a +
"," + b +
")"; this.root.setAttributeNS(null,
"transform", c); this.translationParameters = {x:a, y:b}; return!0}
return!1}, setSize:
function(
a){
OpenLayers.Renderer.prototype.setSize.apply(
this, arguments); this.rendererRoot.setAttributeNS(
null,
"width", this.size.w);
964 this.rendererRoot.setAttributeNS(
null,
"height", this.size.h)}, getNodeType:
function(
a,
b){var
c =
null;
switch (
a.CLASS_NAME){
case "OpenLayers.Geometry.Point":
c =
b.externalGraphic?
"image":this.isComplexSymbol(
b.graphicName)?
"svg":
"circle";
break;
case "OpenLayers.Geometry.Rectangle":
c =
"rect";
break;
case "OpenLayers.Geometry.LineString":
c =
"polyline";
break;
case "OpenLayers.Geometry.LinearRing":
c =
"polygon";
break;
case "OpenLayers.Geometry.Polygon":
case "OpenLayers.Geometry.Curve":
c =
"path"}
return c}, setStyle:
function(
a,
965 b,
c){
b =
b ||
a._style;
c =
c ||
a._options; var
d =
b.title ||
b.graphicTitle;
if (
d){
a.setAttributeNS(
null,
"title",
d); var
e =
a.getElementsByTagName(
"title"); 0 <
e.length?
e[0].firstChild.textContent =
d:(
e = this.nodeFactory(
null,
"title"),
e.textContent =
d,
a.appendChild(
e))}var
e = parseFloat(
a.getAttributeNS(
null,
"r")),
d = 1,
f;
if (
"OpenLayers.Geometry.Point" ==
a._geometryClass &&
e){
a.style.visibility =
"";
if (!1 ===
b.graphic)
a.style.visibility =
"hidden";
else if (
b.externalGraphic){
f = this.getPosition(
a);
b.graphicWidth &&
b.graphicHeight &&
966 a.setAttributeNS(
null,
"preserveAspectRatio",
"none"); var
e =
b.graphicWidth ||
b.graphicHeight,
g =
b.graphicHeight ||
b.graphicWidth,
e =
e?
e:2 *
b.pointRadius,
g =
g?
g:2 *
b.pointRadius,
h =
void 0 !=
b.graphicYOffset?
b.graphicYOffset: - (0.5 *
g),
k =
b.graphicOpacity ||
b.fillOpacity;
a.setAttributeNS(
null,
"x", (
f.x + (
void 0 !=
b.graphicXOffset?
b.graphicXOffset: - (0.5 *
e))).toFixed());
a.setAttributeNS(
null,
"y", (
f.y +
h).toFixed());
a.setAttributeNS(
null,
"width",
e);
a.setAttributeNS(
null,
"height",
g);
a.setAttributeNS(this.xlinkns,
"xlink:href",
967 b.externalGraphic);
a.setAttributeNS(
null,
"style",
"opacity: " +
k);
a.onclick =
OpenLayers.Event.preventDefault}
else if (this.isComplexSymbol(
b.graphicName)){var
e = 3 *
b.pointRadius,
g = 2 *
e,
l = this.importSymbol(
b.graphicName);
f = this.getPosition(
a);
d = 3 * this.symbolMetrics[
l.id][0] /
g;
h =
a.parentNode;
k =
a.nextSibling;
h &&
h.removeChild(
a);
a.firstChild &&
a.removeChild(
a.firstChild);
a.appendChild(
l.firstChild.cloneNode(!0));
a.setAttributeNS(
null,
"viewBox",
l.getAttributeNS(
null,
"viewBox"));
a.setAttributeNS(
null,
"width",
968 g);
a.setAttributeNS(
null,
"height",
g);
a.setAttributeNS(
null,
"x",
f.x -
e);
a.setAttributeNS(
null,
"y",
f.y -
e);
k?
h.insertBefore(
a,
k):
h &&
h.appendChild(
a)}
else a.setAttributeNS(
null,
"r",
b.pointRadius);
e =
b.rotation;
void 0 ===
e &&
void 0 ===
a._rotation || !
f || (
a._rotation =
e,
e |= 0,
"svg" !==
a.nodeName?
a.setAttributeNS(
null,
"transform",
"rotate(" +
e +
" " +
f.x +
" " +
f.y +
")"):(
f =
this.symbolMetrics[
l.id],
a.firstChild.setAttributeNS(
null,
"transform",
"rotate(" +
e +
" " +
f[1] +
" " +
f[2] +
")")))}
c.isFilled?(
a.setAttributeNS(
null,
"fill",
b.fillColor),
969 a.setAttributeNS(
null,
"fill-opacity",
b.fillOpacity)):
a.setAttributeNS(
null,
"fill",
"none");
c.isStroked?(
a.setAttributeNS(
null,
"stroke",
b.strokeColor),
a.setAttributeNS(
null,
"stroke-opacity",
b.strokeOpacity),
a.setAttributeNS(
null,
"stroke-width",
b.strokeWidth *
d),
a.setAttributeNS(
null,
"stroke-linecap",
b.strokeLinecap ||
"round"),
a.setAttributeNS(
null,
"stroke-linejoin",
"round"),
b.strokeDashstyle &&
a.setAttributeNS(
null,
"stroke-dasharray",
this.dashStyle(
b,
d))):
a.setAttributeNS(
null,
"stroke",
"none");
b.pointerEvents &&
970 a.setAttributeNS(
null,
"pointer-events",
b.pointerEvents);
null !=
b.cursor &&
a.setAttributeNS(
null,
"cursor",
b.cursor);
return a}, dashStyle:
function(
a,
b){var
c =
a.strokeWidth *
b,
d =
a.strokeDashstyle;
switch (
d){
case "solid":
return"none";
case "dot":
return[1, 4 *
c].join();
case "dash":
return[4 *
c, 4 *
c].join();
case "dashdot":
return[4 *
c, 4 *
c, 1, 4 *
c].join();
case "longdash":
return[8 *
c, 4 *
c].join();
case "longdashdot":
return[8 *
c, 4 *
c, 1, 4 *
c].join();
default:
return OpenLayers.String.trim(
d).replace(/\
s+/
g,
",")}}, createNode:
function(
a,
971 b){var
c =
document.createElementNS(this.xmlns,
a);
b &&
c.setAttributeNS(
null,
"id",
b);
return c}, nodeTypeCompare:
function(
a,
b){
return b ==
a.nodeName}, createRenderRoot:
function(){var
a = this.nodeFactory(this.container.id +
"_svgRoot",
"svg");
a.style.display =
"block";
return a}, createRoot:
function(
a){
return this.nodeFactory(this.container.id +
a,
"g")}, createDefs:
function(){var
a = this.nodeFactory(this.container.id +
"_defs",
"defs"); this.rendererRoot.appendChild(
a);
return a}, drawPoint:
function(
a,
b){
return this.drawCircle(
a,
972 b, 1)}, drawCircle:
function(
a,
b,
c){var
d = this.getResolution(),
e = (
b.x - this.featureDx) /
d + this.left;
b = this.top -
b.y /
d;
return this.inValidRange(
e,
b)?(
a.setAttributeNS(
null,
"cx",
e),
a.setAttributeNS(
null,
"cy",
b),
a.setAttributeNS(
null,
"r",
c),
a):!1}, drawLineString:
function(
a,
b){var
c = this.getComponentsString(
b.components);
return c.path?(
a.setAttributeNS(
null,
"points",
c.path),
c.complete?
a:
null):!1}, drawLinearRing:
function(
a,
b){var
c = this.getComponentsString(
b.components);
return c.path?(
a.setAttributeNS(
null,
973 "points",
c.path),
c.complete?
a:
null):!1}, drawPolygon:
function(
a,
b){
for (var
c =
"",
d = !0,
e = !0,
f,
g,
h = 0,
k =
b.components.length;
h <
k;
h++)
c +=
" M",
f = this.getComponentsString(
b.components[
h].components,
" "), (
g =
f.path)?(
c +=
" " +
g,
e =
f.complete &&
e):
d = !1;
return d?(
a.setAttributeNS(
null,
"d",
c +
" z"),
a.setAttributeNS(
null,
"fill-rule",
"evenodd"),
e?
a:
null):!1}, drawRectangle:function(
a,
b){var
c = this.getResolution(),
d = (
b.x - this.featureDx) /
c + this.left,
e = this.top -
b.y /
c;
return this.inValidRange(
d,
e)?(
a.setAttributeNS(
null,
"x",
974 d),
a.setAttributeNS(
null,
"y",
e),
a.setAttributeNS(
null,
"width",
b.width /
c),
a.setAttributeNS(
null,
"height",
b.height /
c),
a):!1}, drawText:
function(
a,
b,
c){var
d = !!
b.labelOutlineWidth;
if (
d){var
e =
OpenLayers.Util.extend({},
b);
e.fontColor =
e.labelOutlineColor;
e.fontStrokeColor =
e.labelOutlineColor;
e.fontStrokeWidth =
b.labelOutlineWidth;
b.labelOutlineOpacity && (
e.fontOpacity =
b.labelOutlineOpacity);
delete e.labelOutlineWidth; this.drawText(
a,
e,
c)}var
f = this.getResolution(),
e = (
c.x - this.featureDx) /
f + this.left,
g =
c.y /
975 f -
this.top,
d =
d?
this.LABEL_OUTLINE_SUFFIX:
this.LABEL_ID_SUFFIX,
f =
this.nodeFactory(
a +
d,
"text");
f.setAttributeNS(
null,
"x",
e);
f.setAttributeNS(
null,
"y", -
g);
b.fontColor &&
f.setAttributeNS(
null,
"fill",
b.fontColor);
b.fontStrokeColor &&
f.setAttributeNS(
null,
"stroke",
b.fontStrokeColor);
b.fontStrokeWidth &&
f.setAttributeNS(
null,
"stroke-width",
b.fontStrokeWidth);
b.fontOpacity &&
f.setAttributeNS(
null,
"opacity",
b.fontOpacity);
b.fontFamily &&
f.setAttributeNS(
null,
"font-family",
b.fontFamily);
b.fontSize &&
f.setAttributeNS(
null,
976 "font-size",
b.fontSize);
b.fontWeight &&
f.setAttributeNS(
null,
"font-weight",
b.fontWeight);
b.fontStyle &&
f.setAttributeNS(
null,
"font-style",
b.fontStyle); !0 ===
b.labelSelect?(
f.setAttributeNS(
null,
"pointer-events",
"visible"),
f._featureId =
a):
f.setAttributeNS(
null,
"pointer-events",
"none");
g =
b.labelAlign ||
OpenLayers.Renderer.defaultSymbolizer.labelAlign;
f.setAttributeNS(
null,
"text-anchor",
OpenLayers.Renderer.SVG.LABEL_ALIGN[
g[0]] ||
"middle"); !0 ===
OpenLayers.IS_GECKO &&
f.setAttributeNS(
null,
"dominant-baseline",
977 OpenLayers.Renderer.SVG.LABEL_ALIGN[
g[1]] ||
"central");
for (var
h =
b.label.split(
"\n"),
k =
h.length;
f.childNodes.length >
k; )
f.removeChild(
f.lastChild);
for (var
l = 0;
l <
k;
l++){var
m = this.nodeFactory(
a +
d +
"_tspan_" +
l,
"tspan"); !0 ===
b.labelSelect && (
m._featureId =
a,
m._geometry =
c,
m._geometryClass =
c.CLASS_NAME); !1 ===
OpenLayers.IS_GECKO &&
m.setAttributeNS(
null,
"baseline-shift",
OpenLayers.Renderer.SVG.LABEL_VSHIFT[
g[1]] ||
"-35%");
m.setAttribute(
"x",
e);
if (0 ==
l){var
n =
OpenLayers.Renderer.SVG.LABEL_VFACTOR[
g[1]];
null ==
n &&
978 (
n = - 0.5);
m.setAttribute(
"dy",
n * (
k - 1) +
"em")}
else m.setAttribute(
"dy",
"1em");
m.textContent =
"" ===
h[
l]?
" ":
h[
l];
m.parentNode ||
f.appendChild(
m)}
f.parentNode || this.textRoot.appendChild(
f)}, getComponentsString:
function(
a,
b){
for (var
c = [],
d = !0,
e =
a.length,
f = [],
g,
h = 0;
h <
e;
h++)
g =
a[
h],
c.push(
g), (
g = this.getShortString(
g))?
f.push(
g):(0 <
h && this.getShortString(
a[
h - 1]) &&
f.push(this.clipLine(
a[
h],
a[
h - 1])),
h <
e - 1 && this.getShortString(
a[
h + 1]) &&
f.push(this.clipLine(
a[
h],
a[
h + 1])),
d = !1);
return{path:
f.join(
b ||
","), complete:
d}},
979 clipLine:
function(
a,
b){
if (
b.equals(
a))
return""; var
c = this.getResolution(),
d = this.MAX_PIXEL - this.translationParameters.x,
e = this.MAX_PIXEL - this.translationParameters.y,
f = (
b.x - this.featureDx) /
c + this.left,
g = this.top -
b.y /
c,
h = (
a.x -
this.featureDx) /
c + this.left,
c = this.top -
a.y /
c,
k;
if (
h < - d || h > d)
k = (
c -
g) / (
h -
f),
h = 0 >
h? -
d:
d,
c =
g + (
h -
f) *
k;
if (
c < - e || c > e)
k = (
h -
f) / (
c -
g),
c = 0 >
c? -
e:
e,
h =
f + (
c -
g) *
k;
return h +
"," +
c}, getShortString:
function(
a){var
b = this.getResolution(),
c = (
a.x - this.featureDx) /
b + this.left;
a = this.top -
a.y /
b;
return this.inValidRange(
c,
980 a)?
c +
"," +
a:!1}, getPosition:
function(
a){
return{
x:parseFloat(
a.getAttributeNS(
null,
"cx")),
y:parseFloat(
a.getAttributeNS(
null,
"cy"))}}, importSymbol:
function(
a){this.defs || (this.defs = this.createDefs()); var
b = this.container.id +
"-" +
a,
c =
document.getElementById(
b);
if (
null !=
c)
return c; var
d =
OpenLayers.Renderer.symbol[
a];
if (!
d)
throw Error(
a +
" is not a valid symbol name");
a = this.nodeFactory(
b,
"symbol"); var
e = this.nodeFactory(
null,
"polygon");
a.appendChild(
e);
for (var
c =
new OpenLayers.Bounds(
Number.MAX_VALUE,
Number.MAX_VALUE,
981 0, 0),
f = [],
g,
h,
k = 0;
k <
d.length;
k += 2)
g =
d[
k],
h =
d[
k + 1],
c.left =
Math.min(
c.left,
g),
c.bottom =
Math.min(
c.bottom,
h),
c.right =
Math.max(
c.right,
g),
c.top =
Math.max(
c.top,
h),
f.push(
g,
",",
h);
e.setAttributeNS(
null,
"points",
f.join(
" "));
d =
c.getWidth();
e =
c.getHeight();
a.setAttributeNS(
null,
"viewBox", [
c.left -
d,
c.bottom -
e, 3 *
d, 3 *
e].join(
" ")); this.symbolMetrics[
b] = [
Math.max(
d,
e),
c.getCenterLonLat().lon,
c.getCenterLonLat().lat]; this.defs.appendChild(
a);
return a}, getFeatureIdFromEvent:
function(
a){var
b =
OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(
this,
982 arguments);
b || (
b =
a.target,
b =
b.parentNode &&
b != this.rendererRoot?
b.parentNode._featureId:
void 0);
return b}, CLASS_NAME:
"OpenLayers.Renderer.SVG"});
OpenLayers.Renderer.SVG.LABEL_ALIGN = {
l:
"start",
r:
"end",
b:
"bottom",
t:
"hanging"};
OpenLayers.Renderer.SVG.LABEL_VSHIFT = {
t:
"-70%",
b:
"0"};
OpenLayers.Renderer.SVG.LABEL_VFACTOR = {
t:0,
b: - 1};
OpenLayers.Renderer.SVG.preventDefault =
function(
a){
OpenLayers.Event.preventDefault(
a)};
OpenLayers.Format.SLD.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.SLD.v1, {VERSION:
"1.0.0", schemaLocation:
"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd", CLASS_NAME:
"OpenLayers.Format.SLD.v1_0_0"});
OpenLayers.Format.OWSContext =
OpenLayers.Class(
OpenLayers.Format.Context, {defaultVersion:
"0.3.1", getVersion:function(a, b){var c = OpenLayers.Format.XML.VersionedOGC.prototype.getVersion.apply(this, arguments);
"0.3.0" === c && (c = this.defaultVersion); return c}, toContext:
function(
a){var b = {};
"OpenLayers.Map" ==
a.CLASS_NAME && (
b.bounds =
a.getExtent(),
b.maxExtent =
a.maxExtent,
b.projection =
a.projection,
b.size =
a.getSize(),
b.layers =
a.layers);
return b}, CLASS_NAME:
"OpenLayers.Format.OWSContext"});
OpenLayers.Format.OWSContext.v0_3_1 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{owc:
"http://www.opengis.net/ows-context", gml:
"http://www.opengis.net/gml", kml:
"http://www.opengis.net/kml/2.2", ogc:
"http://www.opengis.net/ogc", ows:
"http://www.opengis.net/ows", sld:
"http://www.opengis.net/sld", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, VERSION:
"0.3.1", schemaLocation:
"http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd",
983 defaultPrefix:
"owc", extractAttributes:!0, xy:!0, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, featureNS:
"http://mapserver.gis.umn.edu/mapserver", featureType:
"vector", geometryName:
"geometry", nestingLayerLookup:
null, initialize:
function(
a){OpenLayers.Format.XML.prototype.initialize.apply(this, [a]); OpenLayers.Format.GML.v2.prototype.setGeometryTypes.call(this)}, setNestingPath:
function(
a){if (a.layersContext)for (var b = 0, c = a.layersContext.length; b < c; b++){var d =
984 a.layersContext[b], e = [], f = a.title ||
""; a.metadata && a.metadata.nestingPath && (e = a.metadata.nestingPath.slice());
"" != f && e.push(f); d.metadata.nestingPath = e; d.layersContext && this.setNestingPath(d)}}, decomposeNestingPath:
function(
a){var
b = [];
if (
OpenLayers.Util.isArray(
a)){
for (
a =
a.slice(); 0 <
a.length; )
b.push(
a.slice()),
a.pop();
b.reverse()}
return b}, read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
b = {}; this.readNode(
a,
985 b); this.setNestingPath({layersContext:
b.layersContext});
a = []; this.processLayer(
a,
b);
delete b.layersContext;
b.layersContext =
a;
return b}, processLayer:
function(
a,
b){
if (
b.layersContext)
for (var
c = 0,
d =
b.layersContext.length;
c <
d;
c++){var
e =
b.layersContext[
c];
a.push(
e);
e.layersContext && this.processLayer(
a,
e)}}, write:
function(
a,
b){this.nestingLayerLookup = {};
b =
b || {};
OpenLayers.Util.applyDefaults(
b,
a); var
c = this.writeNode(
"OWSContext",
b); this.nestingLayerLookup =
null; this.setAttributeNS(
c, this.namespaces.xsi,
986 "xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
c])}, readers:{kml:{Document:
function(
a,
b){
b.features = (
new OpenLayers.Format.KML({kmlns:this.namespaces.kml, extractStyles:!0})).read(
a)}}, owc:{OWSContext:
function(
a,
b){this.readChildNodes(
a,
b)}, General:
function(
a,
b){this.readChildNodes(
a,
b)}, ResourceList:
function(
a,
b){this.readChildNodes(
a,
b)},
Layer:
function(
a,
b){var
c = {metadata:{}, visibility:
"1" !=
a.getAttribute(
"hidden"), queryable:
"1" ==
a.getAttribute(
"queryable"),
987 opacity:
null !=
a.getAttribute(
"opacity")?parseFloat(
a.getAttribute(
"opacity")):null, name:
a.getAttribute(
"name"), categoryLayer:null ==
a.getAttribute(
"name"), formats:[], styles:[]};
b.layersContext || (
b.layersContext = []);
b.layersContext.push(
c); this.readChildNodes(
a,
c)}, InlineGeometry:
function(
a,
b){
b.features = []; var
c = this.getElementsByTagNameNS(
a, this.namespaces.gml,
"featureMember"),
d; 1 <=
c.length && (
d =
c[0]);
d &&
d.firstChild && (
c =
d.firstChild.nextSibling?
d.firstChild.nextSibling:
d.firstChild, this.setNamespace(
"feature",
988 c.namespaceURI), this.featureType =
c.localName ||
c.nodeName.split(
":").pop(), this.readChildNodes(
a,
b))}, Server:
function(
a,
b){
if (!
b.service && !
b.version ||
b.service !=
OpenLayers.Format.Context.serviceTypes.WMS)
b.service =
a.getAttribute(
"service"),
b.version =
a.getAttribute(
"version"), this.readChildNodes(
a,
b)}, Name:
function(
a,
b){
b.name = this.getChildValue(
a); this.readChildNodes(
a,
b)}, Title:
function(
a,
b){
b.title = this.getChildValue(
a); this.readChildNodes(
a,
b)}, StyleList:
function(
a,
b){this.readChildNodes(
a,
b.styles)},
989 Style:
function(
a,
b){var
c = {};
b.push(
c); this.readChildNodes(
a,
c)}, LegendURL:
function(
a,
b){var
c = {};
b.legend =
c; this.readChildNodes(
a,
c)}, OnlineResource:
function(
a,
b){
b.url = this.getAttributeNS(
a, this.namespaces.xlink,
"href"); this.readChildNodes(
a,
b)}}, ows:
OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers.ows, gml:
OpenLayers.Format.GML.v2.prototype.readers.gml, sld:
OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld, feature:
OpenLayers.Format.GML.v2.prototype.readers.feature}, writers:{owc:{OWSContext:
function(
a){var
b =
990 this.createElementNSPlus(
"OWSContext", {attributes:{
version:this.VERSION, id:
a.id ||
OpenLayers.Util.createUniqueID(
"OpenLayers_OWSContext_")}}); this.writeNode(
"General",
a,
b); this.writeNode(
"ResourceList",
a,
b);
return b}, General:
function(
a){var
b = this.createElementNSPlus(
"General"); this.writeNode(
"ows:BoundingBox",
a,
b); this.writeNode(
"ows:Title",
a.title ||
"OpenLayers OWSContext",
b);
return b}, ResourceList:
function(
a){
for (var
b = this.createElementNSPlus(
"ResourceList"),
c = 0,
d =
a.layers.length;
c <
d;
c++){var
e =
991 a.layers[
c],
f = this.decomposeNestingPath(
e.metadata.nestingPath); this.writeNode(
"_Layer", {layer:
e, subPaths:
f},
b)}
return b}, Server:
function(
a){var
b = this.createElementNSPlus(
"Server", {attributes:{
version:
a.version, service:
a.service}}); this.writeNode(
"OnlineResource",
a,
b);
return b}, OnlineResource:
function(
a){
return this.createElementNSPlus(
"OnlineResource", {attributes:{
"xlink:href":
a.url}})}, InlineGeometry:
function(
a){var
b = this.createElementNSPlus(
"InlineGeometry"),
c =
a.getDataExtent();
null !==
c && this.writeNode(
"gml:boundedBy",
992 c,
b);
for (var
c = 0,
d =
a.features.length;
c <
d;
c++)this.writeNode(
"gml:featureMember",
a.features[
c],
b);
return b}, StyleList:
function(
a){
for (var
b = this.createElementNSPlus(
"StyleList"),
c = 0,
d =
a.length;
c <
d;
c++)this.writeNode(
"Style",
a[
c],
b);
return b},
Style:
function(
a){var
b = this.createElementNSPlus(
"Style"); this.writeNode(
"Name",
a,
b); this.writeNode(
"Title",
a,
b);
a.legend && this.writeNode(
"LegendURL",
a,
b);
return b}, Name:
function(
a){
return this.createElementNSPlus(
"Name", {value:
a.name})}, Title:
function(
a){
return this.createElementNSPlus(
"Title",
993{value:
a.title})}, LegendURL:
function(
a){var
b = this.createElementNSPlus(
"LegendURL"); this.writeNode(
"OnlineResource",
a.legend,
b);
return b}, _WMS:
function(
a){var
b = this.createElementNSPlus(
"Layer", {attributes:{name:
a.params.LAYERS, queryable:
a.queryable?
"1":
"0", hidden:
a.visibility?
"0":
"1", opacity:
a.hasOwnProperty(
"opacity")?
a.opacity:
null}}); this.writeNode(
"ows:Title",
a.name,
b); this.writeNode(
"ows:OutputFormat",
a.params.FORMAT,
b); this.writeNode(
"Server", {service:
OpenLayers.Format.Context.serviceTypes.WMS,
994 version:
a.params.VERSION, url:
a.url},
b);
a.metadata.styles && 0 <
a.metadata.styles.length && this.writeNode(
"StyleList",
a.metadata.styles,
b);
return b}, _Layer:
function(
a){var
b,
c,
d;
b =
a.layer;
c =
a.subPaths;
d =
null; 0 <
c.length?(
b =
c[0].join(
"/"),
c =
b.lastIndexOf(
"/"),
d =
this.nestingLayerLookup[
b],
c = 0 <
c?
b.substring(
c + 1,
b.length):
b,
d || (
d =
this.createElementNSPlus(
"Layer"),
this.writeNode(
"ows:Title",
c,
d),
this.nestingLayerLookup[
b] =
d),
a.subPaths.shift(),
this.writeNode(
"_Layer",
a,
d)):(
b instanceof
OpenLayers.Layer.WMS?
995 d = this.writeNode(
"_WMS",
b):
b instanceof
OpenLayers.
Layer.
Vector && (
b.protocol instanceof
OpenLayers.
Protocol.WFS.
v1?
d =
this.writeNode(
"_WFS",
b):
b.protocol instanceof
OpenLayers.
Protocol.HTTP?
b.protocol.format instanceof
OpenLayers.
Format.
GML?(
b.protocol.format.
version =
"2.1.2",
d =
this.writeNode(
"_GML",
b)):
b.protocol.format instanceof
OpenLayers.
Format.KML && (
b.protocol.format.
version =
"2.2",
d =
this.writeNode(
"_KML",
b)):(
this.setNamespace(
"feature",
this.featureNS),
d =
this.writeNode(
"_InlineGeometry",
b))),
996 b.options.maxScale &&
this.writeNode(
"sld:MinScaleDenominator",
b.options.maxScale,
d),
b.options.minScale &&
this.writeNode(
"sld:MaxScaleDenominator",
b.options.minScale,
d),
this.nestingLayerLookup[
b.name] =
d);
return d}, _WFS:
function(
a){var
b = this.createElementNSPlus(
"Layer", {attributes:{name:
a.protocol.featurePrefix +
":" +
a.protocol.featureType, hidden:
a.visibility?
"0":
"1"}}); this.writeNode(
"ows:Title",
a.name,
b); this.writeNode(
"Server", {service:
OpenLayers.Format.Context.serviceTypes.WFS,
version:
a.protocol.version,
997 url:
a.protocol.url},
b);
return b}, _InlineGeometry:
function(
a){var
b = this.createElementNSPlus(
"Layer", {attributes:{name:this.featureType, hidden:
a.visibility?
"0":
"1"}}); this.writeNode(
"ows:Title",
a.name,
b); this.writeNode(
"InlineGeometry",
a,
b);
return b}, _GML:
function(
a){var
b = this.createElementNSPlus(
"Layer"); this.writeNode(
"ows:Title",
a.name,
b); this.writeNode(
"Server", {service:
OpenLayers.Format.Context.serviceTypes.GML, url:
a.protocol.url,
version:
a.protocol.format.version},
b);
return b}, _KML:
function(
a){var
b =
998 this.createElementNSPlus(
"Layer"); this.writeNode(
"ows:Title",
a.name,
b); this.writeNode(
"Server", {service:
OpenLayers.Format.Context.serviceTypes.KML,
version:
a.protocol.format.version, url:
a.protocol.url},
b);
return b}}, gml:
OpenLayers.Util.applyDefaults({boundedBy:
function(
a){var
b = this.createElementNSPlus(
"gml:boundedBy"); this.writeNode(
"gml:Box",
a,
b);
return b}},
OpenLayers.Format.GML.v2.prototype.writers.gml), ows:
OpenLayers.
Format.
OWSCommon.
v1_0_0.
prototype.writers.ows, sld:
OpenLayers.
Format.SLD.
v1_0_0.
prototype.writers.sld,
999 feature:
OpenLayers.
Format.
GML.
v2.
prototype.writers.feature}, CLASS_NAME:
"OpenLayers.Format.OWSContext.v0_3_1"});
OpenLayers.Popup =
OpenLayers.Class({events:
null, id:
"", lonlat:
null, div:
null, contentSize:
null, size:
null, contentHTML:
null, backgroundColor:
"", opacity:
"", border:
"", contentDiv:
null, groupDiv:
null, closeDiv:
null, autoSize:!1, minSize:
null, maxSize:
null, displayClass:
"olPopup", contentDisplayClass:
"olPopupContent", padding:0, disableFirefoxOverflowHack:!1, fixPadding:
function(){
"number" == typeof this.padding && (this.padding =
new OpenLayers.Bounds(this.padding, this.padding, this.padding, this.padding))}, panMapIfOutOfView:!1,
1000 keepInMap:!1, closeOnMove:!1, map:
null, initialize:
function(
a,
b,
c,
d,
e,
f){
null ==
a && (
a =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")); this.
id = a; this.lonlat =
b; this.contentSize =
null !=
c?
c:
new OpenLayers.Size(
OpenLayers.Popup.WIDTH,
OpenLayers.Popup.HEIGHT);
null !=
d && (this.contentHTML =
d); this.backgroundColor =
OpenLayers.Popup.COLOR; this.opacity =
OpenLayers.Popup.OPACITY; this.border =
OpenLayers.Popup.BORDER; this.div =
OpenLayers.Util.createDiv(this.
id,
null,
null,
null,
null,
null,
"hidden"); this.div.className = this.displayClass;
1001 this.groupDiv =
OpenLayers.Util.createDiv(this.
id +
"_GroupDiv",
null,
null,
null,
"relative",
null,
"hidden"); a = this.div.id +
"_contentDiv"; this.contentDiv =
OpenLayers.Util.createDiv(
a,
null, this.contentSize.clone(),
null,
"relative"); this.contentDiv.className = this.contentDisplayClass; this.groupDiv.appendChild(this.contentDiv); this.div.appendChild(this.groupDiv);
e && this.addCloseBox(
f); this.registerEvents()}, destroy:
function(){this.border = this.opacity = this.backgroundColor = this.contentHTML = this.size = this.lonlat = this.
id =
1002 null; this.closeOnMove && this.map && this.map.events.unregister(
"movestart",
this, this.hide); this.events.destroy(); this.events =
null; this.closeDiv && (
OpenLayers.Event.stopObservingElement(this.closeDiv), this.groupDiv.removeChild(
this.closeDiv)); this.closeDiv =
null; this.div.removeChild(this.groupDiv); this.groupDiv =
null;
null != this.map && this.map.removePopup(
this); this.panMapIfOutOfView = this.padding = this.maxSize = this.minSize = this.autoSize = this.div = this.map =
null}, draw:
function(
a){
null ==
a &&
null != this.lonlat &&
null !=
1003 this.map && (
a = this.map.getLayerPxFromLonLat(this.lonlat)); this.closeOnMove && this.map.events.register(
"movestart",
this, this.hide); this.disableFirefoxOverflowHack ||
"firefox" !=
OpenLayers.BROWSER_NAME || (this.map.events.register(
"movestart",
this,
function(){var
a =
document.defaultView.getComputedStyle(this.contentDiv,
null).getPropertyValue(
"overflow");
"hidden" !=
a && (this.contentDiv._oldOverflow =
a, this.contentDiv.style.overflow =
"hidden")}), this.map.events.register(
"moveend",
this,
function(){var
a = this.contentDiv._oldOverflow;
1004 a && (this.contentDiv.style.overflow =
a, this.contentDiv._oldOverflow =
null)})); this.
moveTo(a); this.autoSize || this.size || this.setSize(this.contentSize); this.setBackgroundColor(); this.setOpacity(); this.setBorder(); this.setContentHTML(); this.panMapIfOutOfView && this.panIntoView();
return this.div}, updatePosition:
function(){
if (this.lonlat && this.map){var
a = this.map.getLayerPxFromLonLat(this.lonlat);
a && this.
moveTo(a)}},
moveTo:
function(
a){
null !=
a &&
null != this.div && (this.div.style.left =
a.x +
"px", this.div.style.top =
1005 a.y +
"px")}, visible:
function(){
return OpenLayers.Element.visible(this.div)}, toggle:
function(){this.visible()?this.hide():
this.show()}, show:function(){this.div.style.display =
""; this.panMapIfOutOfView && this.panIntoView()}, hide:
function(){this.div.style.display =
"none"}, setSize:
function(
a){this.size =
a.clone(); var
b = this.getContentDivPadding(),
c =
b.left +
b.right,
d =
b.top +
b.bottom; this.fixPadding();
c += this.padding.left + this.padding.right;
d += this.padding.top + this.padding.bottom;
if (this.closeDiv)var
e = parseInt(this.closeDiv.style.width),
1006 c =
c + (
e +
b.right); this.size.w +=
c; this.size.h +=
d;
"msie" ==
OpenLayers.BROWSER_NAME && (this.contentSize.w +=
b.left +
b.right, this.contentSize.h +=
b.bottom +
b.top);
null != this.div && (this.div.style.width = this.size.w +
"px", this.div.style.height = this.size.h +
"px");
null != this.contentDiv && (this.contentDiv.style.width =
a.w +
"px", this.contentDiv.style.height =
a.h +
"px")}, updateSize:
function(){var
a =
"<div class='" + this.contentDisplayClass +
"'>" + this.contentDiv.innerHTML +
"</div>",
b = this.map?this.map.div:
document.body,
c =
OpenLayers.Util.getRenderedDimensions(
a,
1007 null, {displayClass:this.displayClass, containerElement:
b}),
d = this.getSafeContentSize(
c),
e =
null;
d.equals(
c)?
e =
c:(
c = {
w:
d.w <
c.w?
d.w:
null,
h:
d.h <
c.h?
d.h:
null},
c.w &&
c.h?
e =
d:(
a =
OpenLayers.Util.getRenderedDimensions(
a,
c, {displayClass:this.contentDisplayClass, containerElement:
b}),
"hidden" !=
OpenLayers.Element.getStyle(this.contentDiv,
"overflow") &&
a.equals(
d) && (
d =
OpenLayers.Util.getScrollbarWidth(),
c.w?
a.h +=
d:
a.w +=
d),
e =
this.getSafeContentSize(
a))); this.setSize(
e)}, setBackgroundColor:
function(
a){
void 0 !=
a && (this.backgroundColor =
1008 a);
null != this.div && (this.div.style.backgroundColor = this.backgroundColor)}, setOpacity:
function(
a){
void 0 !=
a && (this.opacity =
a);
null != this.div && (this.div.style.opacity = this.opacity, this.div.style.filter =
"alpha(opacity=" + 100 * this.opacity +
")")}, setBorder:
function(
a){
void 0 !=
a && (this.border =
a);
null != this.div && (this.div.style.border = this.border)}, setContentHTML:
function(
a){
null !=
a && (this.contentHTML =
a);
null != this.contentDiv && (
null != this.contentHTML && this.contentHTML != this.contentDiv.innerHTML) && (this.contentDiv.innerHTML =
1009 this.contentHTML,
this.autoSize && (
this.registerImageListeners(),
this.updateSize()))}, registerImageListeners:
function(){
for (var
a =
function(){
null !== this.popup.id && (this.popup.updateSize(), this.popup.visible() &&
this.popup.panMapIfOutOfView &&
this.popup.panIntoView(),
OpenLayers.Event.stopObserving(
this.img,
"load",
this.img._onImgLoad))},
b = this.contentDiv.getElementsByTagName(
"img"),
c = 0,
d =
b.length;
c <
d;
c++){var
e =
b[
c];
if (0 ==
e.width || 0 ==
e.height)
e._onImgLoad =
OpenLayers.Function.bind(
a, {popup:
this, img:
e}),
1010 OpenLayers.Event.observe(
e,
"load",
e._onImgLoad)}}, getSafeContentSize:
function(
a){
a =
a.clone(); var
b = this.getContentDivPadding(),
c =
b.left +
b.right,
d =
b.top +
b.bottom; this.fixPadding();
c += this.padding.left + this.padding.right;
d += this.padding.top + this.padding.bottom;
if (this.closeDiv)var
e = parseInt(this.closeDiv.style.width),
c =
c + (
e +
b.right); this.minSize && (
a.w =
Math.max(
a.w,
this.minSize.w -
c),
a.h =
Math.max(
a.h,
this.minSize.h -
d)); this.maxSize && (
a.w =
Math.min(
a.w,
this.maxSize.w -
c),
a.h =
Math.min(
a.h,
this.maxSize.h -
1011 d));
if (this.map && this.map.size){
e =
b = 0;
if (this.keepInMap && !this.panMapIfOutOfView)
switch (
e = this.map.getPixelFromLonLat(
this.lonlat),
this.relativePosition){
case "tr":
b =
e.x;
e = this.map.size.h -
e.y;
break;
case "tl":
b = this.map.size.w -
e.x;
e = this.map.size.h -
e.y;
break;
case "bl":
b = this.map.size.w -
e.x;
e =
e.y;
break;
case "br":
b =
e.x;
e =
e.y;
break;
default:
b =
e.x,
e = this.map.size.h -
e.y}
d = this.map.size.h - this.map.paddingForPopups.top - this.map.paddingForPopups.bottom -
d -
e;
a.w =
Math.min(
a.w,
this.map.size.w -
this.map.paddingForPopups.left -
1012 this.map.paddingForPopups.right -
c -
b);
a.h =
Math.min(
a.h,
d)}
return a}, getContentDivPadding:
function(){var
a = this._contentDivPadding;
a || (
null == this.div.parentNode && (this.div.style.display =
"none",
document.body.appendChild(this.div)), this._contentDivPadding =
a =
new OpenLayers.Bounds(
OpenLayers.Element.getStyle(
this.contentDiv,
"padding-left"),
OpenLayers.Element.getStyle(
this.contentDiv,
"padding-bottom"),
OpenLayers.Element.getStyle(
this.contentDiv,
"padding-right"),
OpenLayers.Element.getStyle(
this.contentDiv,
1013 "padding-top")),
this.div.parentNode ==
document.body && (
document.body.removeChild(
this.div),
this.div.style.display =
""));
return a}, addCloseBox:
function(
a){this.closeDiv =
OpenLayers.Util.createDiv(this.
id +
"_close",
null, {
w:17,
h:17}); this.closeDiv.className =
"olPopupCloseBox"; var
b = this.getContentDivPadding(); this.closeDiv.style.right =
b.right +
"px"; this.closeDiv.style.top =
b.top +
"px"; this.groupDiv.appendChild(this.closeDiv);
a =
a ||
function(
a){this.hide();
OpenLayers.Event.stop(
a)};
OpenLayers.Event.observe(this.closeDiv,
1014 "touchend",
OpenLayers.Function.bindAsEventListener(
a,
this));
OpenLayers.Event.observe(this.closeDiv,
"click",
OpenLayers.Function.bindAsEventListener(
a,
this))}, panIntoView:
function(){var
a = this.map.getSize(),
b = this.map.getViewPortPxFromLayerPx(
new OpenLayers.Pixel(parseInt(this.div.style.left), parseInt(this.div.style.top))),
c =
b.clone();
b.x < this.map.paddingForPopups.left?
c.x = this.map.paddingForPopups.left:
b.x + this.size.w >
a.w - this.map.paddingForPopups.right && (
c.x =
a.w - this.map.paddingForPopups.right - this.size.w);
1015 b.y < this.map.paddingForPopups.top?
c.y = this.map.paddingForPopups.top:
b.y + this.size.h >
a.h - this.map.paddingForPopups.bottom && (
c.y =
a.h - this.map.paddingForPopups.bottom - this.size.h); this.map.pan(
b.x -
c.x,
b.y -
c.y)}, registerEvents:
function(){this.events =
new OpenLayers.Events(
this, this.div,
null, !0); this.events.on({mousedown:this.onmousedown, mousemove:this.onmousemove, mouseup:this.onmouseup, click:this.onclick, mouseout:this.onmouseout, dblclick:this.ondblclick, touchstart:
function(
a){
OpenLayers.Event.stop(
a, !0)},
1016 scope:
this})}, onmousedown:
function(
a){this.mousedown = !0;
OpenLayers.Event.stop(
a, !0)}, onmousemove:
function(
a){this.mousedown &&
OpenLayers.Event.stop(
a, !0)}, onmouseup:
function(
a){this.mousedown && (this.mousedown = !1,
OpenLayers.Event.stop(
a, !0))}, onclick:
function(
a){
OpenLayers.Event.stop(
a, !0)}, onmouseout:
function(
a){this.mousedown = !1}, ondblclick:
function(
a){
OpenLayers.Event.stop(
a, !0)}, CLASS_NAME:
"OpenLayers.Popup"});
OpenLayers.Popup.WIDTH = 200;
OpenLayers.Popup.HEIGHT = 200;
OpenLayers.Popup.COLOR =
"white";
1017 OpenLayers.Popup.OPACITY = 1;
OpenLayers.Popup.BORDER =
"0px";
OpenLayers.Control.ScaleLine =
OpenLayers.Class(
OpenLayers.Control, {maxWidth:100, topOutUnits:
"km", topInUnits:
"m", bottomOutUnits:
"mi", bottomInUnits:
"ft", eTop:null, eBottom:null, geodesic:!1, draw:function(){OpenLayers.Control.prototype.draw.apply(this, arguments); this.eTop || (this.eTop = document.createElement(
"div"), this.eTop.className = this.displayClass +
"Top", this.div.appendChild(this.eTop), this.eTop.style.visibility =
"" == this.topOutUnits ||
"" == this.topInUnits?
"hidden":
"visible", this.eBottom = document.createElement(
"div"),
1018 this.eBottom.className = this.displayClass +
"Bottom", this.div.appendChild(this.eBottom), this.eBottom.style.visibility =
"" == this.bottomOutUnits ||
"" == this.bottomInUnits?
"hidden":
"visible"); this.map.events.register(
"moveend", this, this.update); this.update(); return this.div}, getBarLen:
function(
a){var b = parseInt(Math.log(a) / Math.log(10)), b = Math.pow(10, b); a = parseInt(a / b); return(5 < a?5:2 < a?2:1) * b},
update:
function(){var a = this.map.getResolution(); if (a){var b = this.map.getUnits(), c = OpenLayers.INCHES_PER_UNIT, d = this.maxWidth *
1019 a * c[b], e = 1; !0 === this.geodesic && (e = (this.map.getGeodesicPixelSize().w || 1E-6) * this.maxWidth / (d / c.km), d *= e); var f, g; 1E5 < d?(f = this.topOutUnits, g = this.bottomOutUnits):(f = this.topInUnits, g = this.bottomInUnits); var h = d / c[f], k = d / c[g], d = this.getBarLen(h), l = this.getBarLen(k), h = d / c[b] * c[f], k = l / c[b] * c[g], b = h / a / e, a = k / a / e;
"visible" == this.eBottom.style.visibility && (this.eBottom.style.width = Math.round(a) +
"px", this.eBottom.innerHTML = l +
" " + g);
"visible" == this.eTop.style.visibility && (this.eTop.style.width = Math.round(b) +
1020 "px", this.eTop.innerHTML = d +
" " + f)}}, CLASS_NAME:
"OpenLayers.Control.ScaleLine"});
OpenLayers.Icon =
OpenLayers.Class({url:
null, size:
null, offset:
null, calculateOffset:
null, imageDiv:
null, px:
null, initialize:
function(
a,
b,
c,
d){this.url =
a; this.size =
b || {
w:20,
h:20}; this.offset =
c || {
x: - (this.size.w / 2),
y: - (
this.size.
h / 2)}; this.calculateOffset =
d;
a =
OpenLayers.Util.createUniqueID(
"OL_Icon_"); this.imageDiv =
OpenLayers.Util.createAlphaImageDiv(
a)}, destroy:
function(){this.erase();
OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild); this.imageDiv.innerHTML =
""; this.imageDiv =
null},
clone:
function(){
return new OpenLayers.Icon(this.url,
1021 this.size, this.offset, this.calculateOffset)}, setSize:
function(
a){
null !=
a && (this.size =
a); this.draw()}, setUrl:
function(
a){
null !=
a && (this.url =
a); this.draw()}, draw:
function(
a){
OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
null,
null, this.size, this.url,
"absolute"); this.
moveTo(a);
return this.imageDiv}, erase:
function(){
null != this.imageDiv &&
null != this.imageDiv.parentNode &&
OpenLayers.Element.remove(this.imageDiv)}, setOpacity:
function(
a){
OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
null,
null,
null,
null,
1022 null,
null,
null,
a)},
moveTo:
function(
a){
null !=
a && (this.px =
a);
null != this.imageDiv && (
null == this.px?this.display(!1):(
this.calculateOffset && (
this.offset =
this.calculateOffset(
this.size)),
OpenLayers.
Util.
modifyAlphaImageDiv(
this.imageDiv, null, {
x:this.px.x + this.offset.x,
y:this.px.y + this.offset.y})))}, display:
function(
a){this.imageDiv.style.display =
a?
"":
"none"}, isDrawn:
function(){
return this.imageDiv && this.imageDiv.parentNode && 11 != this.imageDiv.parentNode.nodeType}, CLASS_NAME:
"OpenLayers.Icon"});
OpenLayers.Marker =
OpenLayers.Class({icon:
null, lonlat:
null, events:
null, map:
null, initialize:
function(
a,
b){this.lonlat =
a; var
c =
b?
b:
OpenLayers.Marker.defaultIcon();
null == this.icon?this.icon =
c:(this.icon.url =
c.url, this.icon.size =
c.size, this.icon.offset =
c.offset, this.icon.calculateOffset =
c.calculateOffset); this.events =
new OpenLayers.Events(
this, this.icon.imageDiv)}, destroy:
function(){this.erase(); this.map =
null; this.events.destroy(); this.events =
null;
null != this.icon && (this.icon.destroy(), this.icon =
null)},
1023 draw:
function(
a){
return this.icon.draw(
a)}, erase:
function(){
null != this.icon && this.icon.erase()},
moveTo:
function(
a){
null !=
a &&
null != this.icon && this.icon.moveTo(
a); this.lonlat = this.map.getLonLatFromLayerPx(
a)}, isDrawn:
function(){
return this.icon && this.icon.isDrawn()}, onScreen:
function(){var
a = !1; this.map && (
a = this.map.getExtent().containsLonLat(this.lonlat));
return a}, inflate:
function(
a){this.icon && this.icon.setSize({
w:this.icon.size.w *
a,
h:this.icon.size.h *
a})}, setOpacity:
function(
a){this.icon.setOpacity(
a)},
1024 setUrl:
function(
a){this.icon.setUrl(
a)}, display:
function(
a){this.icon.display(
a)}, CLASS_NAME:
"OpenLayers.Marker"});
OpenLayers.Marker.defaultIcon =
function(){
return new OpenLayers.Icon(
OpenLayers.Util.getImageLocation(
"marker.png"), {w:21, h:25}, {x: - 10.5, y: - 25})};
OpenLayers.Layer.TileCache =
OpenLayers.Class(
OpenLayers.Layer.Grid, {isBaseLayer:!0, format:
"image/png", serverResolutions:null, initialize:function(a, b, c, d){this.layername = c; OpenLayers.Layer.Grid.prototype.initialize.apply(this, [a, b, {}, d]); this.extension = this.format.split(
"/")[1].toLowerCase(); this.extension =
"jpg" == this.extension?
"jpeg":this.extension},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.TileCache(this.name, this.url, this.layername, this.getOptions())); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this,
1025 [a])}, getURL:
function(
a){var b = this.getServerResolution(), c = this.maxExtent, d = this.tileSize, e = Math.round((a.left - c.left) / (b * d.w)); a = Math.round((a.bottom - c.bottom) / (b * d.h)); b = null != this.serverResolutions?OpenLayers.Util.indexOf(this.serverResolutions, b):this.map.getZoom(); e = [this.layername, OpenLayers.Number.zeroPad(b, 2), OpenLayers.Number.zeroPad(parseInt(e / 1E6), 3), OpenLayers.Number.zeroPad(parseInt(e / 1E3) % 1E3, 3), OpenLayers.Number.zeroPad(parseInt(e) % 1E3, 3), OpenLayers.Number.zeroPad(parseInt(a / 1E6),
1026 3), OpenLayers.Number.zeroPad(parseInt(a / 1E3) % 1E3, 3), OpenLayers.Number.zeroPad(parseInt(a) % 1E3, 3) +
"." + this.extension].join(
"/"); b = this.url; OpenLayers.Util.isArray(b) && (b = this.selectUrl(e, b)); b =
"/" == b.charAt(b.length - 1)?b:b +
"/"; return b + e}, CLASS_NAME:
"OpenLayers.Layer.TileCache"});
OpenLayers.Strategy.Paging =
OpenLayers.Class(
OpenLayers.Strategy, {features:null, length:10, num:null, paging:!1, activate:function(){var a = OpenLayers.Strategy.prototype.activate.call(this); if (a)this.layer.events.on({beforefeaturesadded:this.cacheFeatures, scope:this}); return a}, deactivate:
function(){var a = OpenLayers.Strategy.prototype.deactivate.call(this); a && (this.clearCache(), this.layer.events.un({beforefeaturesadded:this.cacheFeatures, scope:this}));
return a}, cacheFeatures:
function(
a){this.paging || (this.clearCache(),
1027 this.features =
a.features, this.pageNext(
a))}, clearCache:
function(){
if (this.features)
for (var
a = 0;
a < this.features.length; ++
a)this.features[
a].destroy(); this.num = this.features =
null}, pageCount:
function(){
return Math.ceil((this.features?this.features.length:0) /
this.length)}, pageNum:
function(){
return this.num}, pageLength:
function(
a){
a && 0 <
a && (this.length =
a);
return this.length}, pageNext:
function(
a){var
b = !1; this.features && (
null === this.num && (this.num = - 1),
b = this.page((this.num + 1) * this.length,
a));
return b}, pagePrevious:
function(){var
a =
1028 !1; this.features && (
null === this.num && (this.num = this.pageCount()),
a = this.page((this.num - 1) * this.length));
return a}, page:
function(
a,
b){var
c = !1;
if (this.features && 0 <=
a &&
a < this.features.length){var
d =
Math.floor(
a / this.length);
d != this.num && (this.paging = !0,
c = this.features.slice(
a,
a + this.length), this.layer.removeFeatures(
this.layer.features),
this.num =
d,
b &&
b.features?
b.features =
c:
this.layer.addFeatures(
c),
this.paging = !1,
c = !0)}
return c}, CLASS_NAME:
"OpenLayers.Strategy.Paging"});
OpenLayers.Control.DragFeature =
OpenLayers.Class(
OpenLayers.Control, {geometryTypes:null, onStart:function(
a,
b){}, onDrag:
function(
a,
b){}, onComplete:
function(
a,
b){}, onEnter:
function(
a){}, onLeave:
function(
a){}, documentDrag:!1, layer:
null, feature:
null, dragCallbacks:{}, featureCallbacks:{}, lastPixel:
null, initialize:
function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]); this.layer =
a; this.handlers = {drag:
new OpenLayers.Handler.Drag(
this,
OpenLayers.Util.extend({down:this.downFeature, move:this.moveFeature,
1029 up:this.upFeature, out:this.cancel, done:this.doneDragging},
this.dragCallbacks), {documentDrag:this.documentDrag}), feature:
new OpenLayers.Handler.Feature(
this, this.layer,
OpenLayers.Util.extend({click:this.clickFeature, clickout:this.clickoutFeature, over:this.overFeature, out:this.outFeature},
this.featureCallbacks), {geometryTypes:this.geometryTypes})}}, clickFeature:
function(
a){this.handlers.feature.touch && (!this.over && this.overFeature(
a)) && (this.handlers.drag.dragstart(
this.handlers.feature.evt),
this.handlers.drag.stopDown =
1030 !1)}, clickoutFeature:
function(
a){this.handlers.feature.touch && this.over && (this.outFeature(
a), this.handlers.drag.stopDown = !0)}, destroy:
function(){this.layer =
null;
OpenLayers.Control.prototype.destroy.apply(
this, [])}, activate:
function(){
return this.handlers.feature.activate() &&
OpenLayers.Control.prototype.activate.apply(
this, arguments)}, deactivate:
function(){this.handlers.drag.deactivate(); this.handlers.feature.deactivate(); this.feature =
null; this.dragging = !1; this.lastPixel =
null;
OpenLayers.Element.removeClass(this.map.viewPortDiv,
1031 this.displayClass +
"Over");
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, overFeature:
function(
a){var
b = !1; this.handlers.drag.dragging?this.over = this.feature.id ==
a.id?!0:!1:(this.feature =
a, this.handlers.drag.activate(), this.over =
b = !0,
OpenLayers.Element.addClass(
this.map.viewPortDiv,
this.displayClass +
"Over"),
this.onEnter(
a));
return b}, downFeature:
function(
a){this.lastPixel =
a; this.onStart(this.feature,
a)}, moveFeature:
function(
a){var
b = this.map.getResolution(); this.feature.geometry.move(
b *
1032 (
a.x -
this.lastPixel.x),
b * (
this.lastPixel.y -
a.y)); this.layer.drawFeature(this.feature); this.lastPixel =
a; this.onDrag(this.feature,
a)}, upFeature:
function(
a){this.over || this.handlers.drag.deactivate()}, doneDragging:
function(
a){this.onComplete(this.feature,
a)}, outFeature:
function(
a){this.handlers.drag.dragging?this.feature.id ==
a.id && (this.over = !1):(
this.over = !1,
this.handlers.drag.deactivate(),
OpenLayers.
Element.removeClass(
this.map.viewPortDiv,
this.displayClass +
"Over"),
this.onLeave(
a),
this.feature = null)},
1033 cancel:function(){this.handlers.drag.deactivate(); this.over = !1}, setMap:
function(
a){this.handlers.drag.setMap(
a); this.handlers.feature.setMap(
a);
OpenLayers.Control.prototype.setMap.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Control.DragFeature"});
OpenLayers.Control.TransformFeature =
OpenLayers.Class(
OpenLayers.Control, {geometryTypes:null, layer:null, preserveAspectRatio:!1, rotate:!0, feature:null, renderIntent:
"temporary", rotationHandleSymbolizer:null, box:null, center:null, scale:1, ratio:1, rotation:0, handles:null, rotationHandles:null, dragControl:null, irregular:!1, initialize:function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]); this.layer =
a; this.rotationHandleSymbolizer || (this.rotationHandleSymbolizer = {stroke:!1, pointRadius:10, fillOpacity:0,
1034 cursor:
"pointer"}); this.createBox(); this.createControl()}, activate:
function(){var
a = !1;
OpenLayers.Control.prototype.activate.apply(
this, arguments) && (this.dragControl.activate(), this.layer.addFeatures([
this.box]),
this.rotate &&
this.layer.addFeatures(
this.rotationHandles),
this.layer.addFeatures(
this.handles),
a = !0);
return a}, deactivate:
function(){var
a = !1;
OpenLayers.Control.prototype.deactivate.apply(
this, arguments) && (this.layer.removeFeatures(this.handles), this.rotate && this.layer.removeFeatures(
this.rotationHandles),
1035 this.layer.removeFeatures([
this.box]),
this.dragControl.deactivate(),
a = !0);
return a}, setMap:
function(
a){this.dragControl.setMap(
a);
OpenLayers.Control.prototype.setMap.apply(
this, arguments)}, setFeature:
function(
a,
b){
b =
OpenLayers.Util.applyDefaults(
b, {rotation:0, scale:1, ratio:1}); var
c = this.rotation,
d = this.center;
OpenLayers.Util.extend(
this,
b);
if (!1 !== this.events.triggerEvent(
"beforesetfeature", {feature:a})){this.feature =
a; this.activate(); this._setfeature = !0; var
e = this.feature.geometry.getBounds(); this.box.move(
e.getCenterLonLat());
1036 this.box.geometry.rotate( -
c,
d); this._angle = 0; this.rotation?(
c =
a.geometry.clone(),
c.rotate( -
this.rotation,
this.center),
c =
new OpenLayers.Feature.Vector(
c.getBounds().toGeometry()),
c.geometry.rotate(
this.rotation,
this.center),
this.box.geometry.rotate(
this.rotation,
this.center),
this.box.move(
c.geometry.getBounds().getCenterLonLat()),
c =
c.geometry.components[0].components[0].getBounds().getCenterLonLat()):
c = new
OpenLayers.
LonLat(
e.left,
e.bottom); this.handles[0].move(
c);
delete this._setfeature; this.events.triggerEvent(
"setfeature",
1037{feature:
a})}}, unsetFeature:
function(){this.active?this.deactivate():(
this.feature = null,
this.rotation = 0,
this.ratio =
this.scale = 1)}, createBox:function(){var
a =
this; this.center =
new OpenLayers.Geometry.Point(0, 0); this.box =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.LineString([
new OpenLayers.Geometry.Point( - 1, - 1),
new OpenLayers.Geometry.Point(0, - 1),
new OpenLayers.Geometry.Point(1, - 1),
new OpenLayers.Geometry.Point(1, 0),
new OpenLayers.Geometry.Point(1, 1),
new OpenLayers.Geometry.Point(0, 1),
new OpenLayers.Geometry.Point( - 1,
1038 1),
new OpenLayers.Geometry.Point( - 1, 0),
new OpenLayers.Geometry.Point( - 1, - 1)]),
null,
"string" == typeof
this.renderIntent?
null:
this.renderIntent);
this.box.geometry.move =
function(
b,
c){a._moving = !0; OpenLayers.Geometry.LineString.prototype.move.apply(this, arguments); a.center.move(b, c); delete a._moving};
for (var
b =
function(
a,
b){
OpenLayers.Geometry.Point.prototype.move.apply(
this, arguments); this._rotationHandle && this._rotationHandle.geometry.move(
a,
b); this._handle.geometry.move(
a,
b)},
c =
function(
a,
b,
c){
OpenLayers.Geometry.Point.prototype.resize.apply(
this,
1039 arguments); this._rotationHandle && this._rotationHandle.geometry.resize(
a,
b,
c); this._handle.geometry.resize(
a,
b,
c)},
d =
function(
a,
b){
OpenLayers.Geometry.Point.prototype.rotate.apply(
this, arguments); this._rotationHandle && this._rotationHandle.geometry.rotate(
a,
b); this._handle.geometry.rotate(
a,
b)},
e =
function(
b,
c){var
d = this.
x,
e = this.
y;
OpenLayers.Geometry.Point.prototype.move.call(
this,
b,
c);
if (!
a._moving){var
f =
a.dragControl.handlers.drag.evt,
g = !(!
a._setfeature &&
a.preserveAspectRatio) && !(
f &&
f.shiftKey),
1040 h =
new OpenLayers.Geometry.Point(
d,
e),
f =
a.center; this.rotate( -
a.rotation,
f);
h.rotate( -
a.rotation,
f); var
k = this.
x -
f.x,
l = this.
y -
f.y,
m =
k - (this.
x -
h.x),
n =
l - (this.
y -
h.y);
a.irregular && !
a._setfeature && (
k -= (this.
x -
h.x) / 2,
l -= (this.
y -
h.y) / 2); this.
x =
d; this.
y =
e;
h = 1;
g?(
l = 1
E-5 >
Math.abs(
n)?1:
l /
n,
h = (1
E-5 >
Math.abs(
m)?1:
k /
m) /
l):(
m =
Math.sqrt(
m *
m +
n *
n),
l =
Math.sqrt(
k *
k +
l *
l) /
m);
a._moving = !0;
a.box.geometry.rotate( -
a.rotation,
f);
delete a._moving;
a.box.geometry.resize(
l,
f,
h);
a.box.geometry.rotate(
a.rotation,
f);
a.transformFeature({scale:l,
1041 ratio:h});
a.irregular && !
a._setfeature && (
k =
f.clone(),
k.x += 1
E-5 >
Math.abs(
d -
f.x)?0:
this.x -
d,
k.y += 1
E-5 >
Math.abs(
e -
f.y)?0:
this.y -
e,
a.box.geometry.move(
this.x -
d,
this.y -
e),
a.transformFeature({center:k}))}},
f =
function(
b,
c){var
d = this.
x,
e = this.
y;
OpenLayers.Geometry.Point.prototype.move.call(
this,
b,
c);
if (!
a._moving){var
f =
a.dragControl.handlers.drag.evt,
f =
f &&
f.shiftKey?45:1,
g =
a.center,
h = this.
x -
g.x,
k = this.
y -
g.y; this.
x =
d; this.
y =
e;
d =
Math.atan2(
k -
c,
h -
b);
d =
Math.atan2(
k,
h) -
d;
d *= 180 /
Math.PI;
a._angle = (
a._angle +
d) %
1042 360;
d =
a.rotation %
f;
if (
Math.abs(
a._angle) >=
f || 0 !==
d)
d =
Math.round(
a._angle /
f) *
f -
d,
a._angle = 0,
a.box.geometry.rotate(
d,
g),
a.transformFeature({rotation:
d})}},
g =
Array(8),
h =
Array(4),
k,
l,
m,
n =
"sw s se e ne n nw w".split(
" "),
p = 0; 8 >
p; ++
p)
k = this.box.geometry.components[
p],
l =
new OpenLayers.Feature.Vector(
k.clone(), {role:n[p] +
"-resize"},
"string" == typeof
this.renderIntent?
null:
this.renderIntent), 0 ==
p % 2 && (
m =
new OpenLayers.Feature.Vector(
k.clone(), {role:n[p] +
"-rotate"},
"string" == typeof
this.rotationHandleSymbolizer?
1043 null:
this.rotationHandleSymbolizer),
m.geometry.move =
f,
k._rotationHandle =
m,
h[
p / 2] =
m),
k.move =
b,
k.resize =
c,
k.rotate =
d,
l.geometry.move =
e,
k._handle =
l,
g[
p] =
l;
this.rotationHandles =
h;
this.handles =
g}, createControl:
function(){var
a =
this; this.dragControl =
new OpenLayers.Control.DragFeature(this.layer, {documentDrag:!0, moveFeature:
function(
b){this.feature ===
a.feature && (this.feature =
a.box);
OpenLayers.Control.DragFeature.prototype.moveFeature.apply(
this, arguments)}, onDrag:
function(
b,
c){
b ===
a.box &&
a.transformFeature({center:
a.center})},
1044 onStart:
function(
b,
c){var
d = !
a.geometryTypes || - 1 !==
OpenLayers.Util.indexOf(
a.geometryTypes,
b.geometry.CLASS_NAME),
e =
OpenLayers.Util.indexOf(
a.handles,
b),
e =
e +
OpenLayers.Util.indexOf(
a.rotationHandles,
b);
b !==
a.feature && (
b !==
a.box && - 2 ==
e &&
d) &&
a.setFeature(
b)}, onComplete:
function(
b,
c){
a.events.triggerEvent(
"transformcomplete", {feature:
a.feature})}})}, drawHandles:
function(){
for (var
a = this.layer,
b = 0; 8 >
b; ++
b)this.rotate && 0 ===
b % 2 &&
a.drawFeature(
this.rotationHandles[
b / 2],
this.rotationHandleSymbolizer),
a.drawFeature(this.handles[
b],
1045 this.renderIntent)}, transformFeature:
function(
a){
if (!this._setfeature){this.scale *=
a.scale || 1; this.ratio *=
a.ratio || 1; var
b = this.rotation; this.rotation = (this.rotation + (
a.rotation || 0)) % 360;
if (!1 !== this.events.triggerEvent(
"beforetransform",
a)){var
c = this.feature,
d =
c.geometry,
e = this.center;
d.rotate( -
b,
e);
a.scale ||
a.ratio?
d.resize(
a.scale,
e,
a.ratio):
a.center &&
c.move(
a.center.getBounds().getCenterLonLat());
d.rotate(this.rotation,
e); this.layer.drawFeature(
c);
c.toState(
OpenLayers.State.UPDATE); this.events.triggerEvent(
"transform",
1046 a)}}this.layer.drawFeature(this.box, this.renderIntent); this.drawHandles()}, destroy:
function(){
for (var
a,
b = 0; 8 >
b; ++
b)
a = this.box.geometry.components[
b],
a._handle.destroy(),
a._handle =
null,
a._rotationHandle &&
a._rotationHandle.destroy(),
a._rotationHandle =
null; this.rotationHandles = this.rotationHandleSymbolizer = this.handles = this.feature = this.center =
null; this.box.destroy(); this.layer = this.box =
null; this.dragControl.destroy(); this.dragControl =
null;
OpenLayers.Control.prototype.destroy.apply(
this, arguments)},
1047 CLASS_NAME:
"OpenLayers.Control.TransformFeature"});
OpenLayers.Handler.Box =
OpenLayers.Class(
OpenLayers.Handler, {dragHandler:null, boxDivClassName:
"olHandlerBoxZoomBox", boxOffsets:null, initialize:function(
a,
b,
c){
OpenLayers.Handler.prototype.initialize.apply(
this, arguments); this.dragHandler =
new OpenLayers.Handler.Drag(
this, {down:this.startBox, move:this.moveBox, out:this.removeBox, up:this.endBox}, {keyMask:this.keyMask})}, destroy:
function(){
OpenLayers.Handler.prototype.destroy.apply(
this, arguments); this.dragHandler && (this.dragHandler.destroy(), this.dragHandler =
1048 null)}, setMap:
function(
a){
OpenLayers.Handler.prototype.setMap.apply(
this, arguments); this.dragHandler && this.dragHandler.setMap(
a)}, startBox:
function(
a){this.callback(
"start", []); this.zoomBox =
OpenLayers.Util.createDiv(
"zoomBox", {
x: - 9999,
y: - 9999}); this.zoomBox.className = this.boxDivClassName; this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE.Popup - 1; this.map.viewPortDiv.appendChild(this.zoomBox);
OpenLayers.Element.addClass(this.map.viewPortDiv,
"olDrawBox")}, moveBox:
function(
a){var
b = this.dragHandler.start.x,
1049 c = this.dragHandler.start.y,
d =
Math.abs(
b -
a.x),
e =
Math.abs(
c -
a.y),
f = this.getBoxOffsets(); this.zoomBox.style.width =
d +
f.width + 1 +
"px"; this.zoomBox.style.height =
e +
f.height + 1 +
"px"; this.zoomBox.style.left = (
a.x <
b?
b -
d -
f.left:
b -
f.left) +
"px"; this.zoomBox.style.top = (
a.y <
c?
c -
e -
f.top:
c -
f.top) +
"px"}, endBox:
function(
a){var
b;
if (5 <
Math.abs(
this.dragHandler.start.x -
a.x) || 5 <
Math.abs(
this.dragHandler.start.y -
a.y)){var
c = this.dragHandler.start;
b =
Math.min(
c.y,
a.y); var
d =
Math.max(
c.y,
a.y),
e =
Math.min(
c.x,
a.x);
a =
Math.max(
c.x,
1050 a.x);
b =
new OpenLayers.Bounds(
e,
d,
a,
b)}
else b = this.dragHandler.start.clone(); this.removeBox(); this.callback(
"done", [
b])}, removeBox:
function(){this.map.viewPortDiv.removeChild(this.zoomBox); this.boxOffsets = this.zoomBox =
null;
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olDrawBox")}, activate:
function(){
return OpenLayers.Handler.prototype.activate.apply(
this, arguments)?(this.dragHandler.activate(), !0):!1}, deactivate:
function(){
return OpenLayers.Handler.prototype.deactivate.apply(
this, arguments)?
1051 (this.dragHandler.deactivate() && this.zoomBox && this.removeBox(), !0):!1}, getBoxOffsets:
function(){
if (!this.boxOffsets){var
a =
document.createElement(
"div");
a.style.position =
"absolute";
a.style.border =
"1px solid black";
a.style.width =
"3px";
document.body.appendChild(
a); var
b = 3 ==
a.clientWidth;
document.body.removeChild(
a); var
a = parseInt(
OpenLayers.Element.getStyle(
this.zoomBox,
"border-left-width")),
c = parseInt(
OpenLayers.Element.getStyle(
this.zoomBox,
"border-right-width")),
d = parseInt(
OpenLayers.Element.getStyle(
this.zoomBox,
1052 "border-top-width")),
e = parseInt(
OpenLayers.Element.getStyle(
this.zoomBox,
"border-bottom-width")); this.boxOffsets = {left:
a, right:
c, top:
d, bottom:
e, width:!1 ===
b?
a +
c:0, height:!1 ===
b?
d +
e:0}}
return this.boxOffsets}, CLASS_NAME:
"OpenLayers.Handler.Box"});
OpenLayers.Control.ZoomBox =
OpenLayers.Class(
OpenLayers.Control, {type:
OpenLayers.
Control.
TYPE_TOOL, out:!1, keyMask:null, alwaysZoom:!1, zoomOnClick:!0, draw:function(){this.handler =
new OpenLayers.Handler.Box(
this, {done:this.zoomBox}, {keyMask:this.keyMask})}, zoomBox:
function(
a){
if (
a instanceof
OpenLayers.Bounds){var
b,
c =
a.getCenterPixel();
if (this.out){
b =
Math.min(this.map.size.h / (
a.bottom -
a.top),
this.map.size.w / (
a.right -
a.left)); var
d = this.map.getExtent(),
e = this.map.getLonLatFromPixel(
c),
f =
e.lon -
d.getWidth() /
1053 2 *
b;
a =
e.lon +
d.getWidth() / 2 *
b; var
g =
e.lat -
d.getHeight() / 2 *
b;
b =
e.lat +
d.getHeight() / 2 *
b;
b =
new OpenLayers.Bounds(
f,
g,
a,
b)}
else f = this.map.getLonLatFromPixel({
x:
a.left,
y:
a.bottom}),
a = this.map.getLonLatFromPixel({x:a.right, y:a.top}),
b =
new OpenLayers.Bounds(
f.lon,
f.lat,
a.lon,
a.lat);
f = this.map.getZoom();
g = this.map.getSize();
a =
g.w / 2;
g =
g.h / 2;
b = this.map.getZoomForExtent(
b);
d = this.map.getResolution();
e = this.map.getResolutionForZoom(
b);
d ==
e?this.map.setCenter(this.map.getLonLatFromPixel(
c)):this.map.zoomTo(
b,
1054{
x:(
d *
c.x -
e *
a) / (
d -
e),
y:(
d *
c.y -
e *
g) / (
d -
e)});
f == this.map.getZoom() && !0 == this.alwaysZoom && this.map.zoomTo(
f + (this.out? - 1:1))}
else this.zoomOnClick && (this.out?this.map.zoomTo(this.map.getZoom() - 1,
a):
this.map.zoomTo(
this.map.getZoom() + 1,
a))}, CLASS_NAME:
"OpenLayers.Control.ZoomBox"});
OpenLayers.Control.DragPan =
OpenLayers.Class(
OpenLayers.Control, {type:
OpenLayers.
Control.
TYPE_TOOL, panned:!1, interval:0, documentDrag:!1, kinetic:null, enableKinetic:!0, kineticInterval:10, draw:function(){
if (this.enableKinetic &&
OpenLayers.Kinetic){var a = {interval:this.kineticInterval};
"object" === typeof
this.enableKinetic && (
a =
OpenLayers.Util.extend(
a,
this.enableKinetic));
this.kinetic =
new OpenLayers.Kinetic(
a)}this.handler =
new OpenLayers.Handler.Drag(
this, {move:this.panMap, done:this.panMapDone, down:this.panMapStart},
1055{interval:this.interval, documentDrag:this.documentDrag})}, panMapStart:
function(){this.kinetic && this.kinetic.begin()}, panMap:
function(
a){this.kinetic && this.kinetic.update(
a); this.panned = !0; this.map.pan(this.handler.last.x -
a.x,
this.handler.last.y -
a.y, {dragging:!0, animate:!1})}, panMapDone:
function(
a){
if (this.panned){var
b =
null; this.kinetic && (
b = this.kinetic.end(
a)); this.map.pan(this.handler.last.x -
a.x,
this.handler.last.y -
a.y, {dragging:!!b, animate:!1});
if (
b){var
c =
this; this.kinetic.move(
b,
function(
a,
b,
1056 f){
c.map.pan(
a,
b, {dragging:!
f, animate:!1})})}this.panned = !1}}, CLASS_NAME:
"OpenLayers.Control.DragPan"});
OpenLayers.Control.Navigation =
OpenLayers.Class(
OpenLayers.Control, {dragPan:null, dragPanOptions:null, pinchZoom:null, pinchZoomOptions:null, documentDrag:!1, zoomBox:null, zoomBoxEnabled:!0, zoomWheelEnabled:!0, mouseWheelOptions:null, handleRightClicks:!1, zoomBoxKeyMask:
OpenLayers.
Handler.
MOD_SHIFT, autoActivate:!0, initialize:function(
a){this.handlers = {};
OpenLayers.Control.prototype.initialize.apply(
this, arguments)}, destroy:
function(){this.deactivate(); this.dragPan && this.dragPan.destroy(); this.dragPan =
null;
1057 this.zoomBox && this.zoomBox.destroy(); this.zoomBox =
null; this.pinchZoom && this.pinchZoom.destroy(); this.pinchZoom =
null;
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, activate:
function(){this.dragPan.activate(); this.zoomWheelEnabled && this.handlers.wheel.activate(); this.handlers.click.activate(); this.zoomBoxEnabled && this.zoomBox.activate(); this.pinchZoom && this.pinchZoom.activate();
return OpenLayers.Control.prototype.activate.apply(
this, arguments)}, deactivate:
function(){this.pinchZoom && this.pinchZoom.deactivate();
1058 this.zoomBox.deactivate(); this.dragPan.deactivate(); this.handlers.click.deactivate(); this.handlers.wheel.deactivate();
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, draw:
function(){this.handleRightClicks && (this.map.viewPortDiv.oncontextmenu =
OpenLayers.Function.False); this.handlers.click =
new OpenLayers.Handler.Click(
this, {click:this.defaultClick, dblclick:this.defaultDblClick, dblrightclick:this.defaultDblRightClick}, {
"double":!0, stopDouble:!0}); this.dragPan =
new OpenLayers.Control.DragPan(
OpenLayers.Util.extend({map:this.map,
1059 documentDrag:this.documentDrag},
this.dragPanOptions)); this.zoomBox =
new OpenLayers.Control.ZoomBox({map:this.map, keyMask:this.zoomBoxKeyMask}); this.dragPan.draw(); this.zoomBox.draw(); this.handlers.wheel =
new OpenLayers.Handler.MouseWheel(
this, {up:this.wheelUp, down:this.wheelDown},
OpenLayers.Util.extend(this.map.fractionalZoom?{}:{cumulative:!1, interval:50, maxDelta:6},
this.mouseWheelOptions));
OpenLayers.Control.PinchZoom && (this.pinchZoom =
new OpenLayers.Control.PinchZoom(
OpenLayers.Util.extend({map:this.map},
1060 this.pinchZoomOptions)))}, defaultClick:
function(
a){
a.lastTouches && 2 ==
a.lastTouches.length && this.map.zoomOut()}, defaultDblClick:
function(
a){this.map.zoomTo(this.map.zoom + 1,
a.xy)}, defaultDblRightClick:
function(
a){this.map.zoomTo(this.map.zoom - 1,
a.xy)}, wheelChange:
function(
a,
b){this.map.fractionalZoom || (
b =
Math.round(
b)); var
c = this.map.getZoom(),
d;
d =
Math.max(
c +
b, 0);
d =
Math.min(
d, this.map.getNumZoomLevels());
d !==
c && this.map.zoomTo(
d,
a.xy)}, wheelUp:
function(
a,
b){this.wheelChange(
a,
b || 1)}, wheelDown:
function(
a,
1061 b){this.wheelChange(
a,
b || - 1)}, disableZoomBox:
function(){this.zoomBoxEnabled = !1; this.zoomBox.deactivate()}, enableZoomBox:
function(){this.zoomBoxEnabled = !0; this.active && this.zoomBox.activate()}, disableZoomWheel:
function(){this.zoomWheelEnabled = !1; this.handlers.wheel.deactivate()}, enableZoomWheel:
function(){this.zoomWheelEnabled = !0; this.active && this.handlers.wheel.activate()}, CLASS_NAME:
"OpenLayers.Control.Navigation"});
OpenLayers.Control.DrawFeature =
OpenLayers.Class(
OpenLayers.Control, {layer:null, callbacks:null, multi:!1, featureAdded:function(){}, initialize:
function(
a,
b,
c){
OpenLayers.Control.prototype.initialize.apply(
this, [
c]); this.callbacks =
OpenLayers.Util.extend({done:this.drawFeature, modify:
function(
a,
b){this.layer.events.triggerEvent(
"sketchmodified", {vertex:
a, feature:
b})},
create:
function(
a,
b){this.layer.events.triggerEvent(
"sketchstarted", {vertex:
a, feature:
b})}}, this.callbacks); this.layer =
a; this.handlerOptions =
1062 this.handlerOptions || {}; this.handlerOptions.layerOptions =
OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions, {renderers:a.renderers, rendererOptions:a.rendererOptions});
"multi"in this.handlerOptions || (this.handlerOptions.multi = this.multi);
if (
a = this.layer.styleMap &&
this.layer.styleMap.styles.temporary)this.handlerOptions.layerOptions =
OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions, {styleMap:new OpenLayers.StyleMap({
"default":a})}); this.handler =
new b(
this, this.callbacks, this.handlerOptions)},
1063 drawFeature:
function(
a){
a =
new OpenLayers.Feature.Vector(
a); !1 !== this.layer.events.triggerEvent(
"sketchcomplete", {feature:
a}) && (
a.state =
OpenLayers.State.INSERT,
this.layer.addFeatures([
a]),
this.featureAdded(
a),
this.events.triggerEvent(
"featureadded", {feature:a}))}, insertXY:
function(
a,
b){this.handler && this.handler.line && this.handler.insertXY(
a,
b)}, insertDeltaXY:
function(
a,
b){this.handler && this.handler.line && this.handler.insertDeltaXY(
a,
b)}, insertDirectionLength:
function(
a,
b){this.handler && this.handler.line &&
1064 this.handler.insertDirectionLength(
a,
b)}, insertDeflectionLength:
function(
a,
b){this.handler && this.handler.line && this.handler.insertDeflectionLength(
a,
b)}, undo:
function(){
return this.handler.undo && this.handler.undo()}, redo:
function(){
return this.handler.redo && this.handler.redo()}, finishSketch:
function(){this.handler.finishGeometry()}, cancel:
function(){this.handler.cancel()}, CLASS_NAME:
"OpenLayers.Control.DrawFeature"});
OpenLayers.Handler.Polygon =
OpenLayers.Class(
OpenLayers.Handler.Path, {holeModifier:null, drawingHole:!1, polygon:null, createFeature:function(
a){
a = this.layer.getLonLatFromViewPortPx(
a);
a =
new OpenLayers.Geometry.Point(
a.lon,
a.lat);
this.point =
new OpenLayers.Feature.Vector(
a);
this.line =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.LinearRing([
this.point.geometry]));
this.polygon =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Polygon([
this.line.geometry]));
this.callback(
"create", [
this.point.geometry,
1065 this.getSketch()]);
this.point.geometry.clearBounds();
this.layer.addFeatures([
this.polygon,
this.point], {silent:!0})}, addPoint:
function(
a){
if (!this.drawingHole && this.holeModifier && this.evt && this.evt[this.holeModifier])
for (var
b = this.point.geometry,
c =
this.control.layer.features,
d,
e =
c.length - 1; 0 <=
e; --
e)
if (
d =
c[
e].geometry, (
d instanceof
OpenLayers.Geometry.Polygon ||
d instanceof
OpenLayers.Geometry.MultiPolygon) &&
d.intersects(
b)){
b =
c[
e]; this.control.layer.removeFeatures([
b], {silent:!0}); this.control.layer.events.registerPriority(
"sketchcomplete",
1066 this, this.finalizeInteriorRing); this.control.layer.events.registerPriority(
"sketchmodified",
this, this.enforceTopology);
b.geometry.addComponent(this.line.geometry); this.polygon =
b; this.drawingHole = !0;
break}
OpenLayers.Handler.Path.prototype.addPoint.apply(
this, arguments)}, getCurrentPointIndex:
function(){
return this.line.geometry.components.length - 2}, enforceTopology:
function(
a){
a =
a.vertex; var
b = this.line.geometry.components; this.polygon.geometry.intersects(
a) || (
b =
b[
b.length - 3],
a.x =
b.x,
a.y =
b.y)}, finishGeometry:
function(){this.line.geometry.removeComponent(this.line.geometry.components[
this.line.geometry.components.length -
10672]); this.removePoint(); this.finalize()}, finalizeInteriorRing:
function(){var
a = this.line.geometry,
b = 0 !==
a.getArea();
if (
b){
for (var
c = this.polygon.geometry.components,
d =
c.length - 2; 0 <=
d; --
d)
if (
a.intersects(
c[
d])){
b = !1;
break}
if (
b)
a:
for (
d =
c.length - 2; 0 <
d; --
d)
for (var
e =
c[
d].components,
f = 0,
g =
e.length;
f <
g; ++
f)
if (
a.containsPoint(
e[
f])){
b = !1;
break a}}
b?this.polygon.state !==
OpenLayers.State.INSERT && (this.polygon.state =
OpenLayers.State.UPDATE):
this.polygon.geometry.removeComponent(
a); this.restoreFeature();
return!1},
1068 cancel:
function(){this.drawingHole && (this.polygon.geometry.removeComponent(this.line.geometry),
this.restoreFeature(!0));
return OpenLayers.Handler.Path.prototype.cancel.apply(
this, arguments)}, restoreFeature:
function(
a){this.control.layer.events.unregister(
"sketchcomplete",
this, this.finalizeInteriorRing); this.control.layer.events.unregister(
"sketchmodified",
this, this.enforceTopology); this.layer.removeFeatures([this.polygon], {silent:!0}); this.control.layer.addFeatures([this.polygon], {silent:!0}); this.drawingHole =
1069 !1;
a || this.control.layer.events.triggerEvent(
"sketchcomplete", {feature:this.polygon})}, destroyFeature:
function(
a){
OpenLayers.Handler.Path.prototype.destroyFeature.call(
this,
a); this.polygon =
null}, drawFeature:
function(){this.layer.drawFeature(this.polygon, this.
style); this.layer.drawFeature(this.point, this.
style)}, getSketch:
function(){
return this.polygon}, getGeometry:
function(){var
a = this.polygon && this.polygon.geometry;
a && this.multi && (
a =
new OpenLayers.Geometry.MultiPolygon([
a]));
return a}, CLASS_NAME:
"OpenLayers.Handler.Polygon"});
OpenLayers.Control.EditingToolbar =
OpenLayers.Class(
OpenLayers.Control.Panel, {citeCompliant:!1, initialize:function(
a,
b){
OpenLayers.Control.Panel.prototype.initialize.apply(
this, [
b]); this.addControls([
new OpenLayers.Control.Navigation]); var
c = [
new OpenLayers.Control.DrawFeature(
a,
OpenLayers.Handler.Point, {displayClass:
"olControlDrawFeaturePoint", handlerOptions:{citeCompliant:this.citeCompliant}}),
new OpenLayers.Control.DrawFeature(
a,
OpenLayers.Handler.Path, {displayClass:
"olControlDrawFeaturePath", handlerOptions:{citeCompliant:this.citeCompliant}}),
1070 new OpenLayers.Control.DrawFeature(
a,
OpenLayers.Handler.Polygon, {displayClass:
"olControlDrawFeaturePolygon", handlerOptions:{citeCompliant:this.citeCompliant}})]; this.addControls(
c)}, draw:
function(){var
a =
OpenLayers.Control.Panel.prototype.draw.apply(
this, arguments);
null === this.defaultControl && (this.defaultControl = this.controls[0]);
return a}, CLASS_NAME:
"OpenLayers.Control.EditingToolbar"});
OpenLayers.Strategy.BBOX =
OpenLayers.Class(
OpenLayers.Strategy, {bounds:null, resolution:null, ratio:2, resFactor:null, response:null, activate:function(){var
a =
OpenLayers.Strategy.prototype.activate.call(
this);
a && (this.layer.events.on({moveend:this.
update, refresh:this.
update, visibilitychanged:this.
update, scope:
this}), this.
update());
return a}, deactivate:
function(){var
a =
OpenLayers.Strategy.prototype.deactivate.call(
this);
a && this.layer.events.un({moveend:this.
update, refresh:this.
update, visibilitychanged:this.
update,
1071 scope:
this});
return a},
update:
function(
a){var
b = this.getMapBounds();
null !==
b && (
a &&
a.force || this.layer.visibility && this.layer.calculateInRange() && this.invalidBounds(
b)) && (this.calculateBounds(
b), this.resolution = this.layer.map.getResolution(), this.triggerRead(
a))}, getMapBounds:
function(){
if (
null === this.layer.map)
return null; var
a = this.layer.map.getExtent();
a && !this.layer.projection.equals(this.layer.map.getProjectionObject()) && (
a =
a.clone().
transform(this.layer.map.getProjectionObject(),
this.layer.projection));
1072 return a}, invalidBounds:
function(
a){
a || (
a = this.getMapBounds());
a = !this.bounds || !this.bounds.containsBounds(
a); !
a && this.resFactor && (
a = this.resolution / this.layer.map.getResolution(),
a =
a >= this.resFactor ||
a <= 1 / this.resFactor);
return a}, calculateBounds:
function(
a){
a || (
a = this.getMapBounds()); var
b =
a.getCenterLonLat(),
c =
a.getWidth() * this.ratio;
a =
a.getHeight() * this.ratio; this.bounds =
new OpenLayers.Bounds(
b.lon -
c / 2,
b.lat -
a / 2,
b.lon +
c / 2,
b.lat +
a / 2)}, triggerRead:
function(
a){!this.response ||
a && !0 ===
a.noAbort ||
1073 (this.layer.protocol.abort(this.response), this.layer.events.triggerEvent(
"loadend")); var
b = {filter:this.createFilter()}; this.layer.events.triggerEvent(
"loadstart",
b); this.response = this.layer.protocol.read(
OpenLayers.Util.applyDefaults({filter:b.filter, callback:this.merge, scope:this},
a))}, createFilter:
function(){var
a =
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.BBOX, value:this.bounds, projection:this.layer.projection}); this.layer.filter && (
a =
new OpenLayers.Filter.Logical({type:
OpenLayers.Filter.Logical.AND,
1074 filters:[this.layer.filter,
a]}));
return a}, merge:
function(
a){this.layer.destroyFeatures();
if (
a.success()){var
b =
a.features;
if (
b && 0 <
b.length){var
c = this.layer.projection,
d = this.layer.map.getProjectionObject();
if (!
d.equals(
c))
for (var
e,
f = 0,
g =
b.length;
f <
g; ++
f)(
e =
b[
f].geometry) &&
e.transform(
c,
d); this.layer.addFeatures(
b)}}
else this.bounds =
null; this.response =
null; this.layer.events.triggerEvent(
"loadend", {response:
a})}, CLASS_NAME:
"OpenLayers.Strategy.BBOX"});
OpenLayers.Layer.WorldWind =
OpenLayers.Class(
OpenLayers.Layer.Grid, {DEFAULT_PARAMS:{}, isBaseLayer:!0, lzd:
null, zoomLevels:
null, initialize:
function(
a,
b,
c,
d,
e,
f){this.lzd =
c; this.zoomLevels =
d;
c = [];
c.push(
a,
b,
e,
f);
OpenLayers.Layer.Grid.prototype.initialize.apply(
this,
c); this.params =
OpenLayers.Util.applyDefaults(this.params, this.DEFAULT_PARAMS)}, getZoom:
function(){var
a = this.map.getZoom(); this.map.getMaxExtent();
return a -=
Math.log(this.maxResolution / (this.lzd / 512)) /
Math.log(2)}, getURL:
function(
a){
a = this.adjustBounds(
a);
1075 var
b = this.getZoom(),
c = this.map.getMaxExtent(),
d = this.lzd /
Math.pow(2, this.getZoom()),
e =
Math.floor((
a.left -
c.left) /
d);
a =
Math.floor((
a.bottom -
c.bottom) /
d);
return this.map.getResolution() <= this.lzd / 512 && this.getZoom() <= this.zoomLevels?this.getFullRequestString({L:
b,
X:
e,
Y:
a}):
OpenLayers.
Util.
getImageLocation(
"blank.gif")}, CLASS_NAME:
"OpenLayers.Layer.WorldWind"});
OpenLayers.Protocol.CSW =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Protocol.CSW.DEFAULTS); var
b =
OpenLayers.Protocol.CSW[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported CSW version: " +
a.version;
return new b(
a)};
OpenLayers.Protocol.CSW.DEFAULTS = {
version:
"2.0.2"};
OpenLayers.Format.WMTSCapabilities =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.0.0", yx:{
"urn:ogc:def:crs:EPSG::4326":!0}, createLayer:
function(
a,
b){if (!(
"layer"in b))throw Error(
"Missing property 'layer' in configuration."); for (var c = a.contents, d, e = 0, f = c.layers.length; e < f; ++e)if (c.layers[e].identifier === b.layer){d = c.layers[e]; break}
if (!
d)
throw Error(
"Layer not found"); var
g =
b.format; !
g && (
d.formats &&
d.formats.length) && (
g =
d.formats[0]); var
h;
b.matrixSet?
h =
c.tileMatrixSets[
b.matrixSet]:
1076 1 <=
d.tileMatrixSetLinks.length && (
h =
c.tileMatrixSets[
d.tileMatrixSetLinks[0].tileMatrixSet]);
if (!
h)
throw Error(
"matrixSet not found");
for (var
k,
e = 0,
f =
d.styles.length;
e <
f && (
k =
d.styles[
e], !
k.isDefault); ++
e);
c =
b.requestEncoding;
if (!
c && (
c =
"KVP",
a.operationsMetadata.GetTile.dcp.http)){var l = a.operationsMetadata.GetTile.dcp.http; l.get[0].constraints && (l = l.get[0].constraints.GetEncoding.allowedValues, l.KVP || !l.REST && !l.RESTful || (c =
"REST"))}var
l = [],
m =
b.params || {};
delete b.params;
for (var
n = 0,
p =
d.dimensions.length;
n <
1077 p;
n++){var q = d.dimensions[n]; l.push(q.identifier); m.hasOwnProperty(q.identifier) || (m[q.identifier] = q[
"default"])}var
n =
b.projection ||
h.supportedCRS.replace(/urn:ogc:def:crs:(\
w+):(.*:)?(\
w+)
$/,
"$1:$3"),
p =
b.units || (
"EPSG:4326" ===
n?
"degrees":
"m"),
q = [],
r;
for (
r in
h.matrixIds)
h.matrixIds.hasOwnProperty(
r) &&
q.push(2.8E-4 *
h.matrixIds[
r].scaleDenominator /
OpenLayers.METERS_PER_INCH /
OpenLayers.INCHES_PER_UNIT[
p]);
if (
"REST" ===
c &&
d.resourceUrls){r = []; for (var f = 0, s = d.resourceUrls.length; f < s; ++f)e = d.resourceUrls[f],
1078 e.format === g &&
"tile" === e.resourceType && r.push(e.template)}
else{s = a.operationsMetadata.GetTile.dcp.http.get; r = []; for (var t, e = 0, f = s.length; e < f; e++)t = s[e].constraints, (!t || t && t.GetEncoding.allowedValues[c]) && r.push(s[e].url)}
return new OpenLayers.Layer.WMTS(
OpenLayers.Util.applyDefaults(
b, {url:r, requestEncoding:c, name:d.title, style:k.identifier, format:g, matrixIds:h.matrixIds, matrixSet:h.identifier, projection:n, units:p, resolutions:!1 === b.isBaseLayer?void 0:q, serverResolutions:q, tileFullExtent:h.bounds,
1079 dimensions:l, params:m}))}, CLASS_NAME:
"OpenLayers.Format.WMTSCapabilities"});
OpenLayers.Layer.Google.v3 = {
DEFAULTS:{sphericalMercator:!0, projection:
"EPSG:900913"}, animationEnabled:!0, loadMapObject:
function(){this.type || (this.type =
google.maps.MapTypeId.ROADMAP); var
a,
b =
OpenLayers.Layer.Google.cache[this.map.id];
b?(
a =
b.mapObject, ++
b.count):(
a =
this.map.getCenter(),
b =
document.createElement(
"div"),
b.className =
"olForeignContainer",
b.
style.width =
"100%",
b.
style.height =
"100%",
a = new
google.
maps.
Map(
b, {center:
a?
new google.maps.LatLng(
a.lat,
a.lon):
new google.maps.LatLng(0, 0), zoom:
this.map.getZoom() ||
1080 0, mapTypeId:
this.type, disableDefaultUI:!0, keyboardShortcuts:!1, draggable:!1, disableDoubleClickZoom:!0, scrollwheel:!1, streetViewControl:!1}),
b =
document.createElement(
"div"),
b.style.width =
"100%",
b.style.height =
"100%",
a.controls[
google.maps.ControlPosition.TOP_LEFT].push(
b),
b = {googleControl:
b, mapObject:
a, count:1},
OpenLayers.Layer.Google.cache[this.map.id] =
b); this.mapObject =
a; this.setGMapVisibility(this.visibility)}, onMapResize:
function(){this.visibility &&
google.maps.event.trigger(this.mapObject,
"resize")},
1081 setGMapVisibility:
function(
a){var
b =
OpenLayers.Layer.Google.cache[this.map.id],
c = this.map;
if (
b){
for (var
d = this.type,
e =
c.layers,
f,
g =
e.length - 1; 0 <=
g; --
g)
if (
f =
e[
g],
f instanceof
OpenLayers.Layer.Google && !0 ===
f.visibility && !0 ===
f.inRange){
d =
f.type;
a = !0;
break}
e = this.mapObject.getDiv();
if (!0 ===
a){
if (
e.parentNode !==
c.div)
if (
b.rendered)
c.div.appendChild(
e),
b.googleControl.appendChild(
c.viewPortDiv),
google.maps.event.trigger(this.mapObject,
"resize");
else{var
h =
this;
google.maps.event.addListenerOnce(this.mapObject,
1082 "tilesloaded",
function(){
b.rendered = !0;
h.setGMapVisibility(
h.getVisibility());
h.moveTo(
h.map.getCenter())})}this.mapObject.setMapTypeId(
d)}
else b.googleControl.hasChildNodes() && (
c.div.appendChild(
c.viewPortDiv),
c.div.removeChild(
e))}}, getMapContainer:
function(){
return this.mapObject.getDiv()}, getMapObjectBoundsFromOLBounds:
function(
a){var
b =
null;
null !=
a && (
b = this.sphericalMercator?this.inverseMercator(
a.bottom,
a.left):new
OpenLayers.
LonLat(
a.bottom,
a.left),
a =
this.sphericalMercator?
this.inverseMercator(
a.top,
1083 a.right):new
OpenLayers.
LonLat(
a.top,
a.right),
b = new
google.
maps.LatLngBounds(new
google.
maps.LatLng(
b.lat,
b.lon), new
google.
maps.LatLng(
a.lat,
a.lon)));
return b}, getMapObjectLonLatFromMapObjectPixel:
function(
a){var
b = this.map.getSize(),
c = this.getLongitudeFromMapObjectLonLat(this.mapObject.center),
d = this.getLatitudeFromMapObjectLonLat(this.mapObject.center),
e = this.map.getResolution();
a =
new OpenLayers.LonLat(
c + (
a.x -
b.w / 2) *
e,
d - (
a.y -
b.h / 2) *
e); this.wrapDateLine && (
a =
a.wrapDateLine(this.maxExtent));
return this.getMapObjectLonLatFromLonLat(
a.lon,
1084 a.lat)}, getMapObjectPixelFromMapObjectLonLat:
function(
a){var
b = this.getLongitudeFromMapObjectLonLat(
a);
a = this.getLatitudeFromMapObjectLonLat(
a); var
c = this.map.getResolution(),
d = this.map.getExtent();
return this.getMapObjectPixelFromXY(1 /
c * (
b -
d.left), 1 /
c * (
d.top -
a))}, setMapObjectCenter:
function(
a,
b){
if (!1 === this.animationEnabled &&
b != this.mapObject.zoom){var
c = this.getMapContainer();
google.maps.event.addListenerOnce(this.mapObject,
"idle",
function(){
c.style.visibility =
""});
c.style.visibility =
"hidden"}this.mapObject.setOptions({center:
a,
1085 zoom:
b})}, getMapObjectZoomFromMapObjectBounds:
function(
a){
return this.mapObject.getBoundsZoomLevel(
a)}, getMapObjectLonLatFromLonLat:
function(
a,
b){var
c; this.sphericalMercator?(
c = this.inverseMercator(
a,
b),
c =
new google.maps.LatLng(
c.lat,
c.lon)):
c = new
google.
maps.LatLng(
b,
a);
return c}, getMapObjectPixelFromXY:
function(
a,
b){
return new google.maps.Point(
a,
b)}};
OpenLayers.Format.WPSDescribeProcess =
OpenLayers.Class(
OpenLayers.Format.XML, {VERSION:
"1.0.0", namespaces:{wps:
"http://www.opengis.net/wps/1.0.0", ows:
"http://www.opengis.net/ows/1.1", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, schemaLocation:
"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd", defaultPrefix:
"wps", regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this,
1086 [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = {};
this.readNode(
a,
b);
return b}, readers:{wps:{ProcessDescriptions:
function(
a,
b){
b.processDescriptions = {}; this.readChildNodes(
a,
b.processDescriptions)}, ProcessDescription:
function(
a,
b){var
c = {processVersion:this.getAttributeNS(
a, this.namespaces.wps,
"processVersion"), statusSupported:
"true" ===
a.getAttribute(
"statusSupported"), storeSupported:
"true" ===
a.getAttribute(
"storeSupported")}; this.readChildNodes(
a,
c);
b[
c.identifier] =
c}, DataInputs:
function(
a,
1087 b){
b.dataInputs = []; this.readChildNodes(
a,
b.dataInputs)}, ProcessOutputs:
function(
a,
b){
b.processOutputs = []; this.readChildNodes(
a,
b.processOutputs)}, Output:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.push(
c)}, ComplexOutput:
function(
a,
b){
b.complexOutput = {}; this.readChildNodes(
a,
b.complexOutput)}, LiteralOutput:
function(
a,
b){
b.literalOutput = {}; this.readChildNodes(
a,
b.literalOutput)}, Input:
function(
a,
b){var
c = {maxOccurs:parseInt(
a.getAttribute(
"maxOccurs")), minOccurs:parseInt(
a.getAttribute(
"minOccurs"))};
1088 this.readChildNodes(
a,
c);
b.push(
c)}, BoundingBoxData:
function(
a,
b){
b.boundingBoxData = {}; this.readChildNodes(
a,
b.boundingBoxData)}, CRS:
function(
a,
b){
b.CRSs || (
b.CRSs = {});
b.CRSs[this.getChildValue(
a)] = !0}, LiteralData:
function(
a,
b){
b.literalData = {}; this.readChildNodes(
a,
b.literalData)}, ComplexData:
function(
a,
b){
b.complexData = {}; this.readChildNodes(
a,
b.complexData)}, Default:
function(
a,
b){
b[
"default"] = {}; this.readChildNodes(
a,
b[
"default"])}, Supported:
function(
a,
b){
b.supported = {}; this.readChildNodes(
a,
b.supported)},
1089 Format:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.formats || (
b.formats = {});
b.formats[
c.mimeType] = !0}, MimeType:
function(
a,
b){
b.mimeType = this.getChildValue(
a)}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WPSDescribeProcess"});
OpenLayers.Format.WKT =
OpenLayers.Class(
OpenLayers.Format, {initialize:function(a){this.regExes = {typeStr:/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/, spaces:/\s+/, parenComma:/\)\s*,\s*\(/, doubleParenComma:/\)\s*\)\s*,\s*\(\s*\(/, trimParens:/^\s*\(?(.*?)\)?\s*$/}; OpenLayers.Format.prototype.initialize.apply(this, [a])}, read:
function(
a){var b, c; a = a.replace(/[\n\r]/g,
" "); if (c = this.regExes.typeStr.exec(a))if (a = c[1].toLowerCase(), c = c[2], this.parse[a] && (b = this.parse[a].apply(this, [c])), this.internalProjection && this.externalProjection)if (b &&
1090 "OpenLayers.Feature.Vector" == b.CLASS_NAME)b.geometry.transform(this.externalProjection, this.internalProjection); else if (b &&
"geometrycollection" != a &&
"object" == typeof b)for (a = 0, c = b.length; a < c; a++)b[a].geometry.transform(this.externalProjection, this.internalProjection); return b}, write:
function(
a){var b, c; a.constructor == Array?c = !0:(a = [a], c = !1); var d = []; c && d.push(
"GEOMETRYCOLLECTION("); for (var e = 0, f = a.length; e < f; ++e)c && 0 < e && d.push(
","), b = a[e].geometry, d.push(this.extractGeometry(b)); c && d.push(
")"); return d.join(
"")},
1091 extractGeometry:
function(
a){var b = a.CLASS_NAME.split(
".")[2].toLowerCase(); if (!this.extract[b])return null; this.internalProjection && this.externalProjection && (a = a.clone(), a.transform(this.internalProjection, this.externalProjection)); return(
"collection" == b?
"GEOMETRYCOLLECTION":b.toUpperCase()) +
"(" + this.extract[b].apply(this, [a]) +
")"}, extract:{point:function(a){return a.x +
" " + a.y}, multipoint:
function(
a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(
"(" + this.extract.point.apply(this, [a.components[c]]) +
1092 ")"); return b.join(
",")}, linestring:
function(
a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extract.point.apply(this, [a.components[c]])); return b.join(
",")}, multilinestring:
function(
a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(
"(" + this.extract.linestring.apply(this, [a.components[c]]) +
")"); return b.join(
",")}, polygon:
function(
a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(
"(" + this.extract.linestring.apply(this, [a.components[c]]) +
")"); return b.join(
",")}, multipolygon:
function(
a){for (var b =
1093[], c = 0, d = a.components.length; c < d; ++c)b.push(
"(" + this.extract.polygon.apply(this, [a.components[c]]) +
")"); return b.join(
",")}, collection:
function(
a){for (var b = [], c = 0, d = a.components.length; c < d; ++c)b.push(this.extractGeometry.apply(this, [a.components[c]])); return b.join(
",")}},
parse:{point:
function(
a){
a =
OpenLayers.String.trim(
a).split(this.regExes.spaces);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(
a[0],
a[1]))}, multipoint:
function(
a){
for (var
b =
OpenLayers.String.trim(
a).split(
","),
1094 c = [],
d = 0,
e =
b.length;
d <
e; ++
d)
a =
b[
d].replace(this.regExes.trimParens,
"$1"),
c.push(this.
parse.point.apply(
this, [
a]).geometry);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.MultiPoint(
c))}, linestring:
function(
a){
a =
OpenLayers.String.trim(
a).split(
",");
for (var
b = [],
c = 0,
d =
a.length;
c <
d; ++
c)
b.push(this.
parse.point.apply(
this, [
a[
c]]).geometry);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.LineString(
b))}, multilinestring:
function(
a){
for (var
b =
OpenLayers.String.trim(
a).split(
this.regExes.parenComma),
1095 c = [],
d = 0,
e =
b.length;
d <
e; ++
d)
a =
b[
d].replace(this.regExes.trimParens,
"$1"),
c.push(this.
parse.linestring.apply(
this, [
a]).geometry);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.MultiLineString(
c))}, polygon:
function(
a){var
b;
a =
OpenLayers.String.trim(
a).split(this.regExes.parenComma);
for (var
c = [],
d = 0,
e =
a.length;
d <
e; ++
d)
b =
a[
d].replace(this.regExes.trimParens,
"$1"),
b = this.
parse.linestring.apply(
this, [
b]).geometry,
b =
new OpenLayers.Geometry.LinearRing(
b.components),
c.push(
b);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Polygon(
c))},
1096 multipolygon:
function(
a){
for (var
b =
OpenLayers.String.trim(
a).split(
this.regExes.doubleParenComma),
c = [],
d = 0,
e =
b.length;
d <
e; ++
d)
a =
b[
d].replace(this.regExes.trimParens,
"$1"),
c.push(this.
parse.polygon.apply(
this, [
a]).geometry);
return new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.MultiPolygon(
c))}, geometrycollection:
function(
a){
a =
a.replace(/,\
s*([
A-Za-
z])/
g,
"|$1");
a =
OpenLayers.String.trim(
a).split(
"|");
for (var
b = [],
c = 0,
d =
a.length;
c <
d; ++
c)
b.push(
OpenLayers.Format.WKT.prototype.read.apply(
this, [
a[
c]]));
1097 return b}}, CLASS_NAME:
"OpenLayers.Format.WKT"});
OpenLayers.WPSProcess =
OpenLayers.Class({client:
null, server:
null, identifier:
null, description:
null, localWPS:
"http://geoserver/wps", formats:
null, chained:0, executeCallbacks:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.executeCallbacks = []; this.formats = {
"application/wkt":
new OpenLayers.Format.WKT,
"application/json":
new OpenLayers.Format.GeoJSON}}, describe:
function(
a){
a =
a || {};
if (!this.description)this.client.describeProcess(this.server, this.identifier,
function(
b){this.description || this.parseDescription(
b);
1098 a.callback &&
a.callback.call(
a.scope,
this.description)},
this);
else if (
a.callback){var
b = this.description; window.setTimeout(
function(){
a.callback.call(
a.scope,
b)}, 0)}}, configure:
function(
a){this.describe({callback:
function(){var
b = this.description,
c =
a.inputs,
d,
e,
f;
e = 0;
for (
f =
b.dataInputs.length;
e <
f; ++
e)
d =
b.dataInputs[
e], this.setInputData(
d,
c[
d.identifier]);
a.callback &&
a.callback.call(
a.scope)}, scope:
this});
return this}, execute:
function(
a){this.configure({inputs:
a.inputs, callback:
function(){var
b =
this,
1099 c = this.getOutputIndex(
b.description.processOutputs,
a.output);
b.setResponseForm({outputIndex:
c}); (
function e(){
OpenLayers.Util.removeItem(
b.executeCallbacks,
e); 0 !==
b.chained?
b.executeCallbacks.push(
e):
OpenLayers.Request.POST({url:
b.client.servers[
b.server].url, data:(
new OpenLayers.Format.WPSExecute).write(
b.description), success:
function(
e){var
g =
b.findMimeType(
b.description.processOutputs[
c].complexOutput.supported.formats);
e =
b.formats[
g].read(
e.responseText);
e instanceof
OpenLayers.Feature.Vector &&
1100 (
e = [
e]);
a.success && (
g = {},
g[
a.output ||
"result"] =
e,
a.success.call(
a.scope,
g))}, scope:
b})})()}, scope:
this})}, output:
function(
a){
return new OpenLayers.WPSProcess.ChainLink({process:
this, output:
a})}, parseDescription:
function(
a){
a = this.client.servers[this.server]; this.description = (
new OpenLayers.Format.WPSDescribeProcess).read(
a.processDescription[
this.identifier]).processDescriptions[this.identifier]}, setInputData:
function(
a,
b){
delete a.data;
delete a.reference;
if (
b instanceof
OpenLayers.WPSProcess.ChainLink)++this.chained,
1101 a.reference = {method:
"POST", href:
b.process.server === this.server?this.localWPS:this.client.servers[
b.process.server].url},
b.process.describe({callback:
function(){--this.chained; this.chainProcess(
a,
b)}, scope:
this});
else{
a.data = {}; var
c =
a.complexData;
c?(
c = this.findMimeType(
c.supported.formats),
a.data.complexData = {mimeType:
c, value:this.formats[
c].write(this.toFeatures(
b))}):
a.data.literalData = {value:
b}}}, setResponseForm:
function(
a){
a =
a || {}; var
b = this.description.processOutputs[
a.outputIndex || 0]; this.description.responseForm =
1102{rawDataOutput:{identifier:
b.identifier, mimeType:this.findMimeType(
b.complexOutput.supported.formats,
a.supportedFormats)}}}, getOutputIndex:
function(
a,
b){var
c;
if (
b)
for (var
d =
a.length - 1; 0 <=
d; --
d){
if (
a[
d].identifier ===
b){
c =
d;
break}}
else c = 0;
return c}, chainProcess:
function(
a,
b){var
c = this.getOutputIndex(
b.process.description.processOutputs,
b.output);
a.reference.mimeType = this.findMimeType(
a.complexData.supported.formats,
b.process.description.processOutputs[
c].complexOutput.supported.formats); var
d = {};
1103 d[
a.reference.mimeType] = !0;
b.process.setResponseForm({outputIndex:
c, supportedFormats:
d});
for (
a.reference.body =
b.process.description; 0 <
this.executeCallbacks.length; )this.executeCallbacks[0]()}, toFeatures:
function(
a){var
b =
OpenLayers.Util.isArray(
a);
b || (
a = [
a]);
for (var
c =
Array(
a.length),
d,
e = 0,
f =
a.length;
e <
f; ++
e)
d =
a[
e],
c[
e] =
d instanceof
OpenLayers.Feature.Vector?
d:
new OpenLayers.Feature.Vector(
d);
return b?
c:
c[0]}, findMimeType:
function(
a,
b){
b =
b || this.formats;
for (var
c in
a)
if (
c in
b)
return c}, CLASS_NAME:
"OpenLayers.WPSProcess"});
1104 OpenLayers.WPSProcess.ChainLink =
OpenLayers.Class({process:
null, output:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a)}, CLASS_NAME:
"OpenLayers.WPSProcess.ChainLink"});
OpenLayers.WPSClient =
OpenLayers.Class({servers:
null,
version:
"1.0.0", lazy:!1, events:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.events =
new OpenLayers.Events(
this); this.servers = {};
for (var
b in
a.servers)this.servers[
b] =
"string" == typeof
a.servers[
b]?{url:
a.servers[
b],
version:this.
version, processDescription:{}}:
a.servers[
b]}, execute:
function(
a){this.getProcess(
a.server,
a.process).execute({inputs:
a.inputs, success:
a.success, scope:
a.scope})}, getProcess:
function(
a,
b){var
c =
new OpenLayers.WPSProcess({client:
this,
1105 server:
a, identifier:
b}); this.lazy ||
c.describe();
return c}, describeProcess:
function(
a,
b,
c,
d){var
e = this.servers[
a];
e.processDescription[
b]?window.setTimeout(
function(){
c.call(
d,
e.processDescription[
b])}, 0):
b in
e.processDescription?
this.events.register(
"describeprocess",
this, function
g(
a){
a.identifier ===
b && (this.events.unregister(
"describeprocess",
this,
g),
c.call(
d,
a.raw))}):(
e.processDescription[
b] = null,
OpenLayers.Request.GET({url:
e.url, params:{SERVICE:
"WPS", VERSION:
e.version, REQUEST:
"DescribeProcess",
1106 IDENTIFIER:
b}, success:
function(
a){
e.processDescription[
b] =
a.responseText; this.events.triggerEvent(
"describeprocess", {identifier:
b, raw:
a.responseText})}, scope:
this}))}, destroy:
function(){this.events.destroy(); this.servers = this.events =
null}, CLASS_NAME:
"OpenLayers.WPSClient"});
OpenLayers.Format.CSWGetRecords.v2_0_2 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{csw:
"http://www.opengis.net/cat/csw/2.0.2", dc:
"http://purl.org/dc/elements/1.1/", dct:
"http://purl.org/dc/terms/", gmd:
"http://www.isotc211.org/2005/gmd", geonet:
"http://www.fao.org/geonetwork", ogc:
"http://www.opengis.net/ogc", ows:
"http://www.opengis.net/ows", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, defaultPrefix:
"csw",
version:
"2.0.2", schemaLocation:
"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
1107 requestId:
null, resultType:
null, outputFormat:
null, outputSchema:
null, startPosition:
null, maxRecords:
null, DistributedSearch:
null, ResponseHandler:
null, Query:
null, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, initialize:
function(
a){OpenLayers.Format.XML.prototype.initialize.apply(this, [a])}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = {};
this.readNode(
a,
b);
return b},
1108 readers:{csw:{GetRecordsResponse:
function(
a,
b){
b.records = []; this.readChildNodes(
a,
b); var
c = this.getAttributeNS(
a,
"",
"version");
"" !=
c && (
b.version =
c)}, RequestId:
function(
a,
b){
b.RequestId = this.getChildValue(
a)}, SearchStatus:
function(
a,
b){
b.SearchStatus = {}; var
c = this.getAttributeNS(
a,
"",
"timestamp");
"" !=
c && (
b.SearchStatus.timestamp =
c)}, SearchResults:
function(
a,
b){this.readChildNodes(
a,
b);
for (var
c =
a.attributes,
d = {},
e = 0,
f =
c.length;
e <
f; ++
e)
d[
c[
e].name] =
"numberOfRecordsMatched" ==
c[
e].name ||
"numberOfRecordsReturned" ==
1109 c[
e].name ||
"nextRecord" ==
c[
e].name?parseInt(
c[
e].nodeValue):
c[
e].nodeValue;
b.SearchResults =
d}, SummaryRecord:
function(
a,
b){var
c = {type:
"SummaryRecord"}; this.readChildNodes(
a,
c);
b.records.push(
c)}, BriefRecord:
function(
a,
b){var
c = {type:
"BriefRecord"}; this.readChildNodes(
a,
c);
b.records.push(
c)}, DCMIRecord:
function(
a,
b){var
c = {type:
"DCMIRecord"}; this.readChildNodes(
a,
c);
b.records.push(
c)}, Record:
function(
a,
b){var
c = {type:
"Record"}; this.readChildNodes(
a,
c);
b.records.push(
c)},
"*":
function(
a,
b){var
c =
a.localName ||
1110 a.nodeName.split(
":").pop();
b[
c] = this.getChildValue(
a)}}, geonet:{info:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.gninfo =
c}}, dc:{
"*":
function(
a,
b){var
c =
a.localName ||
a.nodeName.split(
":").pop();
OpenLayers.Util.isArray(
b[
c]) || (
b[
c] = []);
for (var
d = {},
e =
a.attributes,
f = 0,
g =
e.length;
f <
g; ++
f)
d[
e[
f].name] =
e[
f].nodeValue;
d.value = this.getChildValue(
a);
"" !=
d.value &&
b[
c].push(
d)}}, dct:{
"*":
function(
a,
b){var
c =
a.localName ||
a.nodeName.split(
":").pop();
OpenLayers.Util.isArray(
b[
c]) || (
b[
c] = []);
b[
c].push(this.getChildValue(
a))}},
1111 ows:
OpenLayers.Util.applyDefaults({BoundingBox:
function(
a,
b){
b.bounds && (
b.BoundingBox = [{crs:
b.projection, value:[
b.bounds.left,
b.bounds.bottom,
b.bounds.right,
b.bounds.top]}],
delete b.projection,
delete b.bounds);
OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers.ows.BoundingBox.apply(
this, arguments)}},
OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers.ows)}, write:
function(
a){
a = this.writeNode(
"csw:GetRecords",
a);
a.setAttribute(
"xmlns:gmd", this.namespaces.gmd);
return OpenLayers.Format.XML.prototype.write.apply(
this,
1112 [
a])}, writers:{csw:{GetRecords:
function(
a){
a || (
a = {}); var
b = this.createElementNSPlus(
"csw:GetRecords", {attributes:{service:
"CSW",
version:this.
version, requestId:
a.requestId || this.requestId, resultType:
a.resultType || this.resultType, outputFormat:
a.outputFormat || this.outputFormat, outputSchema:
a.outputSchema || this.outputSchema, startPosition:
a.startPosition || this.startPosition, maxRecords:
a.maxRecords || this.maxRecords}}); (
a.DistributedSearch || this.DistributedSearch) && this.writeNode(
"csw:DistributedSearch",
1113 a.DistributedSearch ||
this.DistributedSearch,
b); var
c =
a.ResponseHandler || this.ResponseHandler;
if (
OpenLayers.Util.isArray(
c) && 0 <
c.length)
for (var
d = 0,
e =
c.length;
d <
e;
d++)this.writeNode(
"csw:ResponseHandler",
c[
d],
b); this.writeNode(
"Query",
a.Query ||
this.Query,
b);
return b}, DistributedSearch:
function(
a){
return this.createElementNSPlus(
"csw:DistributedSearch", {attributes:{hopCount:
a.hopCount}})}, ResponseHandler:
function(
a){
return this.createElementNSPlus(
"csw:ResponseHandler", {value:
a.value})}, Query:
function(
a){
a ||
1114 (
a = {}); var
b = this.createElementNSPlus(
"csw:Query", {attributes:{typeNames:
a.typeNames ||
"csw:Record"}}),
c =
a.ElementName;
if (
OpenLayers.Util.isArray(
c) && 0 <
c.length)
for (var
d = 0,
e =
c.length;
d <
e;
d++)this.writeNode(
"csw:ElementName",
c[
d],
b);
else this.writeNode(
"csw:ElementSetName",
a.ElementSetName || {value:
"summary"},
b);
a.Constraint && this.writeNode(
"csw:Constraint",
a.Constraint,
b);
a.SortBy && this.writeNode(
"ogc:SortBy",
a.SortBy,
b);
return b}, ElementName:
function(
a){
return this.createElementNSPlus(
"csw:ElementName",
1115{value:
a.value})}, ElementSetName:
function(
a){
return this.createElementNSPlus(
"csw:ElementSetName", {attributes:{typeNames:
a.typeNames}, value:
a.value})}, Constraint:
function(
a){var
b = this.createElementNSPlus(
"csw:Constraint", {attributes:{
version:
a.version}});
if (
a.Filter){var
c =
new OpenLayers.Format.Filter({
version:
a.version});
b.appendChild(
c.write(
a.Filter))}
else a.CqlText && (
a = this.createElementNSPlus(
"CqlText", {value:
a.CqlText.value}),
b.appendChild(
a));
return b}}, ogc:
OpenLayers.Format.Filter.v1_1_0.prototype.writers.ogc},
1116 CLASS_NAME:
"OpenLayers.Format.CSWGetRecords.v2_0_2"});
1135 OpenLayers.Marker.Box =
OpenLayers.Class(
OpenLayers.Marker, {bounds:null, div:null, initialize:function(a, b, c){this.bounds = a; this.div = OpenLayers.Util.createDiv(); this.div.style.overflow =
"hidden"; this.events = new OpenLayers.Events(this, this.div); this.setBorder(b, c)}, destroy:
function(){this.div = this.bounds = null; OpenLayers.Marker.prototype.destroy.apply(this, arguments)}, setBorder:
function(
a,
b){a || (a =
"red"); b || (b = 2); this.div.style.border = b +
"px solid " + a}, draw:
function(
a,
b){OpenLayers.Util.modifyDOMElement(this.div,
1136 null, a, b); return this.div}, onScreen:
function(){var a = !1; this.map && (a = this.map.getExtent().containsBounds(this.bounds, !0, !0)); return a}, display:
function(
a){this.div.style.display = a?
"":
"none"}, CLASS_NAME:
"OpenLayers.Marker.Box"});
OpenLayers.Format.Text =
OpenLayers.Class(
OpenLayers.Format, {defaultStyle:null, extractStyles:!0, initialize:function(a){a = a || {}; !1 !== a.extractStyles && (a.defaultStyle = {externalGraphic:OpenLayers.Util.getImageLocation(
"marker.png"), graphicWidth:21, graphicHeight:25, graphicXOffset: - 10.5, graphicYOffset: - 12.5}); OpenLayers.Format.prototype.initialize.apply(this, [a])}, read:
function(
a){a = a.split(
"\n"); for (var b, c = [], d = 0; d < a.length - 1; d++){var e = a[d].replace(/^\s*/,
"").replace(/\s*$/,
""); if (
"#" != e.charAt(0))if (b){for (var e =
1137 e.split(
"\t"), f = new OpenLayers.Geometry.Point(0, 0), g = {}, h = this.defaultStyle?OpenLayers.Util.applyDefaults({}, this.defaultStyle):null, k = !1, l = 0; l < e.length; l++)if (e[l])if (
"point" == b[l])k = e[l].split(
","), f.y = parseFloat(k[0]), f.x = parseFloat(k[1]), k = !0; else if (
"lat" == b[l])f.y = parseFloat(e[l]), k = !0; else if (
"lon" == b[l])f.x = parseFloat(e[l]), k = !0; else if (
"title" == b[l])g.title = e[l]; else if (
"image" == b[l] ||
"icon" == b[l] && h)h.externalGraphic = e[l]; else if (
"iconSize" == b[l] && h){var m = e[l].split(
","); h.graphicWidth =
1138 parseFloat(m[0]); h.graphicHeight = parseFloat(m[1])} else
"iconOffset" == b[l] && h?(m = e[l].split(
","), h.graphicXOffset = parseFloat(m[0]), h.graphicYOffset = parseFloat(m[1])):
"description" == b[l]?g.description = e[l]:
"overflow" == b[l]?g.overflow = e[l]:g[b[l]] = e[l]; k && (this.internalProjection && this.externalProjection && f.transform(this.externalProjection, this.internalProjection), e = new OpenLayers.Feature.Vector(f, g, h), c.push(e))} else b = e.split(
"\t")}
return c}, CLASS_NAME:
"OpenLayers.Format.Text"});
OpenLayers.Layer.Text =
OpenLayers.Class(
OpenLayers.Layer.Markers, {location:null, features:null, formatOptions:null, selectedFeature:null, initialize:function(a, b){OpenLayers.Layer.Markers.prototype.initialize.apply(this, arguments); this.features = []}, destroy:
function(){OpenLayers.Layer.Markers.prototype.destroy.apply(this, arguments); this.clearFeatures(); this.features = null}, loadText:
function(){this.loaded || null == this.location || (this.events.triggerEvent(
"loadstart"), OpenLayers.Request.GET({url:this.location,
1139 success:this.parseData, failure:function(a){this.events.triggerEvent(
"loadend")}, scope:this}), this.loaded = !0)},
moveTo:
function(
a,
b,
c){
OpenLayers.Layer.Markers.prototype.moveTo.apply(
this, arguments); this.visibility && !this.loaded && this.loadText()}, parseData:
function(
a){
a =
a.responseText; var
b = {};
OpenLayers.Util.extend(
b, this.formatOptions); this.map && !this.projection.equals(this.map.getProjectionObject()) && (
b.externalProjection = this.projection,
b.internalProjection = this.map.getProjectionObject());
a = (
new OpenLayers.Format.Text(
b)).read(
a);
1140 for (var
b = 0,
c =
a.length;
b <
c;
b++){var
d = {},
e =
a[
b],
f,
g,
h;
f =
new OpenLayers.LonLat(
e.geometry.x,
e.geometry.y);
e.style.graphicWidth &&
e.style.graphicHeight && (
g =
new OpenLayers.Size(
e.style.graphicWidth,
e.style.graphicHeight));
void 0 !==
e.style.graphicXOffset &&
void 0 !==
e.style.graphicYOffset && (
h =
new OpenLayers.Pixel(
e.style.graphicXOffset,
e.style.graphicYOffset));
null !=
e.style.externalGraphic?
d.icon =
new OpenLayers.Icon(
e.style.externalGraphic,
g,
h):(
d.icon =
OpenLayers.Marker.defaultIcon(),
null !=
g &&
d.icon.setSize(
g));
1141 null !=
e.attributes.title &&
null !=
e.attributes.description && (
d.popupContentHTML =
"<h2>" +
e.attributes.title +
"</h2><p>" +
e.attributes.description +
"</p>");
d.overflow =
e.attributes.overflow ||
"auto";
d =
new OpenLayers.Feature(
this,
f,
d); this.features.push(
d);
f =
d.createMarker();
null !=
e.attributes.title &&
null !=
e.attributes.description &&
f.events.register(
"click",
d, this.markerClick); this.addMarker(
f)}this.events.triggerEvent(
"loadend")}, markerClick:
function(
a){var
b =
this == this.layer.selectedFeature; this.layer.selectedFeature =
1142 b?
null:
this;
for (var
c = 0,
d = this.layer.map.popups.length;
c <
d;
c++)this.layer.map.removePopup(this.layer.map.popups[
c]);
b || this.layer.map.addPopup(this.createPopup());
OpenLayers.Event.stop(
a)}, clearFeatures:
function(){
if (
null != this.features)
for (; 0 < this.features.length; ){var
a = this.features[0];
OpenLayers.Util.removeItem(this.features,
a);
a.destroy()}}, CLASS_NAME:
"OpenLayers.Layer.Text"});
OpenLayers.Handler.RegularPolygon =
OpenLayers.Class(
OpenLayers.Handler.Drag, {sides:4, radius:null, snapAngle:null, snapToggle:
"shiftKey", layerOptions:null, persist:!1, irregular:!1, citeCompliant:!1, angle:null, fixedRadius:!1, feature:null, layer:null, origin:null, initialize:function(
a,
b,
c){
c &&
c.layerOptions &&
c.layerOptions.styleMap || (this.
style =
OpenLayers.Util.extend(
OpenLayers.Feature.Vector.style[
"default"], {}));
OpenLayers.Handler.Drag.prototype.initialize.apply(
this, [
a,
b,
c]);
this.options =
c?
c:{}}, setOptions:
function(
a){
OpenLayers.Util.extend(this.options,
1143 a);
OpenLayers.Util.extend(
this,
a)}, activate:
function(){var
a = !1;
OpenLayers.Handler.Drag.prototype.activate.apply(
this, arguments) && (
a =
OpenLayers.Util.extend({displayInLayerSwitcher:!1, calculateInRange:
OpenLayers.Function.True, wrapDateLine:this.citeCompliant}, this.layerOptions), this.layer =
new OpenLayers.Layer.Vector(this.CLASS_NAME,
a), this.map.addLayer(
this.layer),
a = !0);
return a}, deactivate:
function(){var
a = !1;
OpenLayers.Handler.Drag.prototype.deactivate.apply(
this, arguments) && (this.dragging && this.cancel(),
1144 null != this.layer.map && (this.layer.destroy(!1), this.feature && this.feature.destroy()), this.feature = this.layer =
null,
a = !0);
return a}, down:
function(
a){this.fixedRadius = !!this.radius;
a = this.layer.getLonLatFromViewPortPx(
a.xy); this.origin =
new OpenLayers.Geometry.Point(
a.lon,
a.lat);
if (!this.fixedRadius || this.irregular)this.radius = this.map.getResolution(); this.persist && this.clear(); this.feature =
new OpenLayers.Feature.Vector; this.
createGeometry(); this.callback(
"create", [this.origin, this.feature]); this.layer.addFeatures([this.feature],
1145{silent:!0}); this.layer.drawFeature(this.feature, this.
style)}, move:
function(
a){var
b = this.layer.getLonLatFromViewPortPx(
a.xy),
b =
new OpenLayers.Geometry.Point(
b.lon,
b.lat); this.irregular?(
a =
Math.sqrt(2) *
Math.abs(
b.y -
this.origin.y) / 2,
this.radius =
Math.max(
this.map.getResolution() / 2,
a)):
this.fixedRadius?
this.origin =
b:(
this.calculateAngle(
b,
a),
this.radius =
Math.
max(
this.map.getResolution() / 2,
b.distanceTo(
this.origin))); this.modifyGeometry();
if (this.irregular){
a =
b.x - this.origin.x; var
b =
b.y - this.origin.y,
1146 c;
c = 0 ==
b?
a / (this.radius *
Math.sqrt(2)):
a /
b; this.feature.geometry.resize(1, this.origin,
c); this.feature.geometry.move(
a / 2,
b / 2)}this.layer.drawFeature(this.feature, this.
style)}, up:
function(
a){this.finalize(); this.start == this.last && this.callback(
"done", [
a.xy])}, out:
function(
a){this.finalize()},
createGeometry:
function(){this.angle =
Math.PI * (1 / this.sides - 0.5); this.snapAngle && (this.angle += this.snapAngle * (
Math.PI / 180)); this.feature.geometry =
OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin, this.radius,
1147 this.sides, this.snapAngle)}, modifyGeometry:
function(){var
a,
b,
c = this.feature.geometry.components[0];
c.components.length != this.sides + 1 && (this.
createGeometry(), c = this.feature.geometry.components[0]);
for (var
d = 0;
d < this.sides; ++
d)
b =
c.components[
d],
a =
this.angle + 2 *
d *
Math.PI /
this.sides,
b.x =
this.origin.x +
this.radius *
Math.cos(
a),
b.y = this.origin.y + this.radius *
Math.sin(
a),
b.clearBounds()}, calculateAngle:
function(
a,
b){var
c =
Math.atan2(
a.y -
this.origin.y,
a.x -
this.origin.x);
if (this.snapAngle && this.snapToggle && !
b[this.snapToggle]){var
d =
1148 Math.PI / 180 * this.snapAngle; this.angle =
Math.round(
c /
d) *
d}
else this.angle =
c}, cancel:
function(){this.callback(
"cancel",
null); this.finalize()}, finalize:
function(){this.origin =
null; this.radius = this.options.radius}, clear:
function(){this.layer && (this.layer.renderer.clear(), this.layer.destroyFeatures())}, callback:
function(
a,
b){this.callbacks[
a] && this.callbacks[
a].apply(this.control, [this.feature.geometry.clone()]); this.persist ||
"done" !=
a &&
"cancel" !=
a || this.clear()}, CLASS_NAME:
"OpenLayers.Handler.RegularPolygon"});
OpenLayers.Control.SLDSelect =
OpenLayers.Class(
OpenLayers.Control, {clearOnDeactivate:!1, layers:null, callbacks:null, selectionSymbolizer:{
Polygon:{fillColor:
"#FF0000", stroke:!1},
Line:{strokeColor:
"#FF0000", strokeWidth:2},
Point:{graphicName:
"square", fillColor:
"#FF0000", pointRadius:5}}, layerOptions:
null, sketchStyle:
null, wfsCache:{}, layerCache:{}, initialize:
function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]); this.callbacks =
OpenLayers.Util.extend({done:this.select, click:this.select}, this.callbacks);
1149 this.handlerOptions = this.handlerOptions || {}; this.layerOptions =
OpenLayers.Util.applyDefaults(this.layerOptions, {displayInLayerSwitcher:!1, tileOptions:{maxGetUrlLength:2048}}); this.sketchStyle && (this.handlerOptions.layerOptions =
OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions, {styleMap:new OpenLayers.StyleMap({
"default":this.sketchStyle})})); this.handler =
new a(
this, this.callbacks, this.handlerOptions)}, destroy:
function(){
for (var
a in this.layerCache)
delete this.layerCache[
a];
for (
a in this.wfsCache)
delete this.wfsCache[
a];
1150 OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, coupleLayerVisiblity:
function(
a){this.setVisibility(
a.object.getVisibility())}, createSelectionLayer:
function(
a){var
b;
if (this.layerCache[
a.id])
b = this.layerCache[
a.id];
else{
b =
new OpenLayers.Layer.WMS(
a.name,
a.url,
a.params,
OpenLayers.Util.applyDefaults(
this.layerOptions,
a.getOptions())); this.layerCache[
a.id] =
b;
if (!1 === this.layerOptions.displayInLayerSwitcher)
a.events.on({visibilitychanged:this.coupleLayerVisiblity, scope:
b}); this.map.addLayer(
b)}
return b},
1151 createSLD:
function(
a,
b,
c){
for (var
d = {
version:
"1.0.0", namedLayers:{}},
e = (
"" +
a.params.LAYERS).split(
","),
f = 0,
g =
e.length;
f <
g;
f++){var
h =
e[
f];
d.namedLayers[
h] = {name:
h, userStyles:[]}; var
k = this.selectionSymbolizer,
l =
c[
f]; 0 <=
l.type.indexOf(
"Polygon")?
k = {
Polygon:this.selectionSymbolizer.Polygon}:0 <=
l.type.indexOf(
"LineString")?
k = {
Line:this.selectionSymbolizer.Line}:0 <=
l.type.indexOf(
"Point") && (
k = {
Point:this.selectionSymbolizer.Point});
d.namedLayers[
h].userStyles.push({name:
"default", rules:[
new OpenLayers.Rule({symbolizer:
k,
1152 filter:
b[
f], maxScaleDenominator:
a.options.minScale})]})}
return(
new OpenLayers.Format.SLD({srsName:this.map.getProjection()})).write(
d)}, parseDescribeLayer:
function(
a){var
b =
new OpenLayers.Format.WMSDescribeLayer,
c =
a.responseXML;
c &&
c.documentElement || (
c =
a.responseText);
a =
b.read(
c);
for (var
b = [],
c =
null,
d = 0,
e =
a.length;
d <
e;
d++)
"WFS" ==
a[
d].owsType && (
b.push(
a[
d].typeName),
c =
a[
d].owsURL);
OpenLayers.Request.GET({url:
c, params:{SERVICE:
"WFS", TYPENAME:
b.toString(), REQUEST:
"DescribeFeatureType", VERSION:
"1.0.0"},
1153 callback:
function(
a){var
b =
new OpenLayers.Format.WFSDescribeFeatureType,
c =
a.responseXML;
c &&
c.documentElement || (
c =
a.responseText);
a =
b.read(
c); this.control.wfsCache[this.layer.id] =
a; this.control._queue && this.control.applySelection()}, scope:
this})}, getGeometryAttributes:
function(
a){var
b = [];
a = this.wfsCache[
a.id];
for (var
c = 0,
d =
a.featureTypes.length;
c <
d;
c++)
for (var
e =
a.featureTypes[
c].properties,
f = 0,
g =
e.length;
f <
g;
f++){var
h =
e[
f],
k =
h.type; (0 <=
k.indexOf(
"LineString") || 0 <=
k.indexOf(
"GeometryAssociationType") ||
1154 0 <=
k.indexOf(
"GeometryPropertyType") || 0 <=
k.indexOf(
"Point") || 0 <=
k.indexOf(
"Polygon")) &&
b.push(
h)}
return b}, activate:
function(){var
a =
OpenLayers.Control.prototype.activate.call(
this);
if (
a)
for (var
b = 0,
c = this.layers.length;
b <
c;
b++){var
d = this.layers[
b];
d && !this.wfsCache[
d.id] &&
OpenLayers.Request.GET({url:
d.url, params:{SERVICE:
"WMS", VERSION:
d.params.VERSION, LAYERS:
d.params.LAYERS, REQUEST:
"DescribeLayer"}, callback:this.parseDescribeLayer, scope:{layer:
d, control:
this}})}
return a}, deactivate:
function(){var
a =
1155 OpenLayers.Control.prototype.deactivate.call(
this);
if (
a)
for (var
b = 0,
c = this.layers.length;
b <
c;
b++){var
d = this.layers[
b];
if (
d && !0 === this.clearOnDeactivate){var
e = this.layerCache,
f =
e[
d.id];
f && (
d.events.un({visibilitychanged:this.coupleLayerVisiblity, scope:
f}),
f.destroy(),
delete e[
d.id])}}
return a}, setLayers:
function(
a){this.active?(this.deactivate(), this.layers =
a, this.activate()):
this.layers =
a}, createFilter:function(
a,
b){var
c =
null; this.handler instanceof
OpenLayers.Handler.RegularPolygon?
c = !0 === this.handler.irregular?
1156 new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.BBOX, property:
a.name, value:
b.getBounds()}):
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.INTERSECTS, property:
a.name, value:
b}):this.handler instanceof
OpenLayers.Handler.Polygon?
c =
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.INTERSECTS, property:
a.name, value:
b}):this.handler instanceof
OpenLayers.Handler.Path?
c = 0 <=
a.type.indexOf(
"Point")?
new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.DWITHIN,
1157 property:a.name, distance:0.01 * this.map.getExtent().getWidth(), distanceUnits:this.map.getUnits(), value:b}):
new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.INTERSECTS, property:a.name, value:b}):
this.handler instanceof
OpenLayers.Handler.Click && (
c = 0 <=
a.type.indexOf(
"Polygon")?
new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.INTERSECTS, property:a.name, value:b}):
new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.DWITHIN, property:a.name, distance:0.01 * this.map.getExtent().getWidth(),
1158 distanceUnits:this.map.getUnits(), value:b}));
return c}, select:
function(
a){this._queue =
function(){
for (var
b = 0,
c = this.layers.length;
b <
c;
b++){
for (var
d = this.layers[
b],
e = this.getGeometryAttributes(
d),
f = [],
g = 0,
h =
e.length;
g <
h;
g++){var
k =
e[
g];
if (
null !==
k){
if (!(
a instanceof
OpenLayers.Geometry)){var
l = this.map.getLonLatFromPixel(
a.xy);
a =
new OpenLayers.Geometry.Point(
l.lon,
l.lat)}
k = this.createFilter(
k,
a);
null !==
k &&
f.push(
k)}}
g = this.createSelectionLayer(
d); this.events.triggerEvent(
"selected", {layer:
d, filters:
f});
1159 d = this.createSLD(
d,
f,
e);
g.mergeNewParams({SLD_BODY:
d});
delete this._queue}}; this.applySelection()}, applySelection:
function(){
for (var
a = !0,
b = 0,
c = this.layers.length;
b <
c;
b++)
if (!this.wfsCache[this.layers[
b].
id]){
a = !1;
break}
a && this._queue.call(
this)}, CLASS_NAME:
"OpenLayers.Control.SLDSelect"});
OpenLayers.Control.Scale =
OpenLayers.Class(
OpenLayers.Control, {element:null, geodesic:!1, initialize:function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]); this.element =
OpenLayers.Util.getElement(
a)}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments); this.element || (this.element =
document.createElement(
"div"), this.div.appendChild(
this.element)); this.map.events.register(
"moveend",
this, this.updateScale); this.updateScale();
return this.div}, updateScale:
function(){var
a;
1160 if (!0 === this.geodesic){
if (!this.map.getUnits())
return;
a =
OpenLayers.INCHES_PER_UNIT;
a = (this.map.getGeodesicPixelSize().
w || 1
E-6) *
a.km *
OpenLayers.DOTS_PER_INCH}
else a = this.map.getScale();
a && (
a = 9500 <=
a && 95E4 >=
a?
Math.round(
a / 1E3) +
"K":95E4 <=
a?
Math.round(
a / 1E6) +
"M":
Math.round(
a),
this.element.innerHTML =
OpenLayers.i18n(
"Scale = 1 : ${scaleDenom}", {scaleDenom:a}))}, CLASS_NAME:
"OpenLayers.Control.Scale"});
OpenLayers.Layer.MapGuide =
OpenLayers.Class(
OpenLayers.Layer.Grid, {isBaseLayer:!0, useHttpTile:!1, singleTile:!1, useOverlay:!1, useAsyncOverlay:!0, TILE_PARAMS:{operation:
"GETTILEIMAGE",
version:
"1.2.0"}, SINGLE_TILE_PARAMS:{operation:
"GETMAPIMAGE", format:
"PNG", locale:
"en", clip:
"1",
version:
"1.0.0"}, OVERLAY_PARAMS:{operation:
"GETDYNAMICMAPOVERLAYIMAGE", format:
"PNG", locale:
"en", clip:
"1",
version:
"2.0.0"}, FOLDER_PARAMS:{tileColumnsPerFolder:30, tileRowsPerFolder:30, format:
"png", querystring:
null}, defaultSize:
new OpenLayers.Size(300,
1161 300), tileOriginCorner:
"tl", initialize:
function(
a,
b,
c,
d){
OpenLayers.Layer.Grid.prototype.initialize.apply(
this, arguments);
if (
null ==
d ||
null ==
d.isBaseLayer)this.isBaseLayer =
"true" != this.transparent && !0 != this.transparent;
d &&
null !=
d.useOverlay && (this.useOverlay =
d.useOverlay); this.singleTile?this.useOverlay?(
OpenLayers.Util.applyDefaults(this.params, this.OVERLAY_PARAMS), this.useAsyncOverlay || (this.params.version =
"1.0.0")):
OpenLayers.
Util.
applyDefaults(
this.params,
this.SINGLE_TILE_PARAMS):(
this.useHttpTile?
1162 OpenLayers.
Util.
applyDefaults(
this.params,
this.FOLDER_PARAMS):
OpenLayers.
Util.
applyDefaults(
this.params,
this.TILE_PARAMS),
this.setTileSize(
this.defaultSize))},
clone:function(
a){
null ==
a && (
a =
new OpenLayers.Layer.MapGuide(this.name, this.url, this.params, this.getOptions()));
return a =
OpenLayers.Layer.Grid.prototype.clone.apply(
this, [
a])}, getURL:
function(
a){var
b;
b =
a.getCenterLonLat(); var
c = this.map.getSize(); this.singleTile?(
a = {setdisplaydpi:
OpenLayers.DOTS_PER_INCH, setdisplayheight:
c.h * this.ratio, setdisplaywidth:
c.w *
1163 this.ratio, setviewcenterx:
b.lon, setviewcentery:
b.lat, setviewscale:this.map.getScale()}, this.useOverlay && !this.useAsyncOverlay && (
b = {},
b =
OpenLayers.Util.extend(
b,
a),
b.operation =
"GETVISIBLEMAPEXTENT",
b.version =
"1.0.0",
b.session =
this.params.session,
b.mapName =
this.params.mapName,
b.format =
"text/xml",
b =
this.getFullRequestString(
b),
OpenLayers.Request.GET({url:b, async:!1})),
b =
this.getFullRequestString(
a)):(
c =
this.map.getResolution(),
b =
Math.
floor((
a.left -
this.maxExtent.left) /
c),
b =
Math.
round(
b /
this.tileSize.
w),
1164 a =
Math.
floor((
this.maxExtent.top -
a.top) /
c),
a =
Math.
round(
a /
this.tileSize.
h),
b =
this.useHttpTile?
this.getImageFilePath({tilecol:
b, tilerow:
a, scaleindex:this.resolutions.length - this.map.zoom - 1}):
this.getFullRequestString({tilecol:
b, tilerow:
a, scaleindex:this.resolutions.length - this.map.zoom - 1}));
return b}, getFullRequestString:
function(
a,
b){var
c =
null ==
b?this.url:
b;
"object" == typeof
c && (
c =
c[
Math.floor(
Math.random() *
c.length)]); var
d =
c,
e =
OpenLayers.Util.extend({}, this.params),
e =
OpenLayers.Util.extend(
e,
a),
1165 f =
OpenLayers.Util.upperCaseObject(
OpenLayers.Util.getParameters(
c)),
g;
for (
g in
e)
g.toUpperCase()in
f &&
delete e[
g];
e =
OpenLayers.Util.getParameterString(
e);
e =
e.replace(/,/
g,
"+");
"" !=
e && (
f =
c.charAt(
c.length - 1),
d =
"&" ==
f ||
"?" ==
f?
d +
e: - 1 ==
c.indexOf(
"?")?
d + (
"?" +
e):
d + (
"&" +
e));
return d}, getImageFilePath:
function(
a,
b){var
c =
null ==
b?this.url:
b;
"object" == typeof
c && (
c =
c[
Math.floor(
Math.random() *
c.length)]); var
d =
"",
e =
""; 0 >
a.tilerow && (
d =
"-");
d = 0 ==
a.tilerow?
d +
"0":
d +
Math.floor(
Math.abs(
a.tilerow /
this.params.tileRowsPerFolder)) *
1166 this.params.tileRowsPerFolder; 0 >
a.tilecol && (
e =
"-");
e = 0 ==
a.tilecol?
e +
"0":
e +
Math.floor(
Math.abs(
a.tilecol /
this.params.tileColumnsPerFolder)) * this.params.tileColumnsPerFolder;
d =
"/S" +
Math.floor(
a.scaleindex) +
"/" + this.params.basemaplayergroupname +
"/R" +
d +
"/C" +
e +
"/" +
a.tilerow % this.params.tileRowsPerFolder +
"_" +
a.tilecol % this.params.tileColumnsPerFolder +
"." + this.params.format; this.params.querystring && (
d +=
"?" + this.params.querystring);
return c +
d}, CLASS_NAME:
"OpenLayers.Layer.MapGuide"});
OpenLayers.Control.Measure =
OpenLayers.Class(
OpenLayers.Control, {callbacks:null, displaySystem:
"metric", geodesic:!1, displaySystemUnits:{geographic:[
"dd"], english:[
"mi",
"ft",
"in"], metric:[
"km",
"m"]}, partialDelay:300, delayedTrigger:
null, persist:!1, immediate:!1, initialize:
function(
a,
b){
OpenLayers.Control.prototype.initialize.apply(
this, [
b]); var
c = {done:this.measureComplete, point:this.measurePartial}; this.immediate && (
c.modify = this.measureImmediate); this.callbacks =
OpenLayers.Util.extend(
c, this.callbacks);
1167 this.handlerOptions =
OpenLayers.Util.extend({persist:this.persist}, this.handlerOptions); this.handler =
new a(
this, this.callbacks, this.handlerOptions)}, deactivate:
function(){this.cancelDelay();
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, cancel:
function(){this.cancelDelay(); this.handler.cancel()}, setImmediate:
function(
a){(this.immediate =
a)?this.callbacks.modify =
this.measureImmediate:delete
this.callbacks.modify}, updateHandler:function(
a,
b){var
c = this.active;
c && this.deactivate();
1168 this.handler =
new a(
this, this.callbacks,
b);
c && this.activate()}, measureComplete:
function(
a){this.cancelDelay(); this.measure(
a,
"measure")}, measurePartial:
function(
a,
b){this.cancelDelay();
b =
b.clone(); this.handler.freehandMode(this.handler.evt)?this.measure(
b,
"measurepartial"):
this.delayedTrigger = window.setTimeout(
OpenLayers.
Function.
bind(function(){this.delayedTrigger =
null; this.measure(
b,
"measurepartial")},
this), this.partialDelay)}, measureImmediate:
function(
a,
b,
c){
c && !this.handler.freehandMode(this.handler.evt) &&
1169 (this.cancelDelay(), this.measure(
b.geometry,
"measurepartial"))}, cancelDelay:
function(){
null !== this.delayedTrigger && (window.clearTimeout(this.delayedTrigger), this.delayedTrigger =
null)}, measure:
function(
a,
b){var
c,
d; - 1 <
a.CLASS_NAME.indexOf(
"LineString")?(
c = this.getBestLength(
a),
d = 1):(
c =
this.getBestArea(
a),
d = 2); this.events.triggerEvent(
b, {measure:
c[0], units:
c[1], order:
d, geometry:
a})}, getBestArea:
function(
a){
for (var
b = this.displaySystemUnits[this.displaySystem],
c,
d,
e = 0,
f =
b.length;
e <
f && !(
c =
b[
e],
d =
this.getArea(
a,
1170 c), 1 <
d); ++
e);
return[
d,
c]}, getArea:
function(
a,
b){var
c,
d; this.geodesic?(
c =
a.getGeodesicArea(this.map.getProjectionObject()),
d =
"m"):(
c =
a.getArea(),
d =
this.map.getUnits()); var
e =
OpenLayers.INCHES_PER_UNIT[
b];
e && (
c *=
Math.pow(
OpenLayers.INCHES_PER_UNIT[
d] /
e, 2));
return c}, getBestLength:
function(
a){
for (var
b = this.displaySystemUnits[this.displaySystem],
c,
d,
e = 0,
f =
b.length;
e <
f && !(
c =
b[
e],
d =
this.getLength(
a,
c), 1 <
d); ++
e);
return[
d,
c]},
getLength:
function(
a,
b){var
c,
d; this.geodesic?(
c =
a.getGeodesicLength(this.map.getProjectionObject()),
1171 d =
"m"):(
c =
a.
getLength(),
d =
this.map.getUnits()); var
e =
OpenLayers.INCHES_PER_UNIT[
b];
e && (
c *=
OpenLayers.INCHES_PER_UNIT[
d] /
e);
return c}, CLASS_NAME:
"OpenLayers.Control.Measure"});
OpenLayers.Format.WMC.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.WMC.v1, {VERSION:
"1.0.0", schemaLocation:
"http://www.opengis.net/context http://schemas.opengis.net/context/1.0.0/context.xsd", initialize:function(
a){
OpenLayers.Format.WMC.v1.prototype.initialize.apply(
this, [
a])}, read_wmc_SRS:
function(
a,
b){var
c = this.getChildValue(
b);
"object" != typeof
a.projections && (
a.projections = {});
for (var
c =
c.split(/ +/),
d = 0,
e =
c.length;
d <
e;
d++)
a.projections[
c[
d]] = !0}, write_wmc_Layer:
function(
a){var
b =
OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
this,
1172 [
a]);
if (
a.srs){var
c = [],
d;
for (
d in
a.srs)
c.push(
d);
b.appendChild(this.createElementDefaultNS(
"SRS",
c.join(
" ")))}
b.appendChild(this.write_wmc_FormatList(
a));
b.appendChild(this.write_wmc_StyleList(
a));
a.dimensions &&
b.appendChild(this.write_wmc_DimensionList(
a));
b.appendChild(this.write_wmc_LayerExtension(
a))}, CLASS_NAME:
"OpenLayers.Format.WMC.v1_0_0"});
OpenLayers.Popup.Anchored =
OpenLayers.Class(
OpenLayers.Popup, {relativePosition:null, keepInMap:!0, anchor:null, initialize:function(
a,
b,
c,
d,
e,
f,
g){
OpenLayers.Popup.prototype.initialize.apply(
this, [
a,
b,
c,
d,
f,
g]); this.anchor =
null !=
e?
e:{size:
new OpenLayers.Size(0, 0), offset:
new OpenLayers.Pixel(0, 0)}}, destroy:
function(){this.relativePosition = this.anchor =
null;
OpenLayers.Popup.prototype.destroy.apply(
this, arguments)}, show:
function(){this.updatePosition();
OpenLayers.Popup.prototype.show.apply(
this, arguments)},
1173 moveTo:
function(
a){var
b = this.relativePosition; this.relativePosition = this.calculateRelativePosition(
a);
OpenLayers.Popup.prototype.moveTo.call(
this, this.calculateNewPx(
a)); this.relativePosition !=
b && this.updateRelativePosition()}, setSize:
function(
a){
OpenLayers.Popup.prototype.setSize.apply(
this, arguments);
if (this.lonlat && this.map){var
b = this.map.getLayerPxFromLonLat(this.lonlat); this.
moveTo(b)}}, calculateRelativePosition:
function(
a){
a = this.map.getLonLatFromLayerPx(
a);
a = this.map.getExtent().determineQuadrant(
a);
1174 return OpenLayers.Bounds.oppositeQuadrant(
a)}, updateRelativePosition:
function(){}, calculateNewPx:
function(
a){
a =
a.offset(this.anchor.offset); var
b = this.size || this.contentSize,
c =
"t" == this.relativePosition.charAt(0);
a.y +=
c? -
b.h:this.anchor.size.h;
c =
"l" == this.relativePosition.charAt(1);
a.x +=
c? -
b.w:this.anchor.size.w;
return a}, CLASS_NAME:
"OpenLayers.Popup.Anchored"});
OpenLayers.Popup.Framed =
OpenLayers.Class(
OpenLayers.Popup.Anchored, {imageSrc:null, imageSize:null, isAlphaImage:!1, positionBlocks:null, blocks:null, fixedRelativePosition:!1, initialize:function(
a,
b,
c,
d,
e,
f,
g){
OpenLayers.Popup.Anchored.prototype.initialize.apply(
this, arguments); this.fixedRelativePosition && (this.updateRelativePosition(), this.calculateRelativePosition =
function(
a){
return this.relativePosition}); this.contentDiv.style.position =
"absolute"; this.contentDiv.style.zIndex = 1;
f && (this.closeDiv.style.zIndex =
1175 1); this.groupDiv.style.position =
"absolute"; this.groupDiv.style.top =
"0px"; this.groupDiv.style.left =
"0px"; this.groupDiv.style.height =
"100%"; this.groupDiv.style.width =
"100%"}, destroy:
function(){this.isAlphaImage = this.imageSize = this.imageSrc =
null; this.fixedRelativePosition = !1; this.positionBlocks =
null;
for (var
a = 0;
a < this.blocks.length;
a++){var
b = this.blocks[
a];
b.image &&
b.div.removeChild(
b.image);
b.image =
null;
b.div && this.groupDiv.removeChild(
b.div);
b.div =
null}this.blocks =
null;
OpenLayers.Popup.Anchored.prototype.destroy.apply(
this,
1176 arguments)}, setBackgroundColor:
function(
a){}, setBorder:
function(){}, setOpacity:
function(
a){}, setSize:
function(
a){
OpenLayers.Popup.Anchored.prototype.setSize.apply(
this, arguments); this.updateBlocks()}, updateRelativePosition:
function(){this.padding = this.positionBlocks[this.relativePosition].padding;
if (this.closeDiv){var
a = this.getContentDivPadding(); this.closeDiv.style.right =
a.right + this.padding.right +
"px"; this.closeDiv.style.top =
a.top + this.padding.top +
"px"}this.updateBlocks()}, calculateNewPx:
function(
a){var
b =
1177 OpenLayers.Popup.Anchored.prototype.calculateNewPx.apply(
this, arguments);
return b =
b.offset(this.positionBlocks[this.relativePosition].offset)}, createBlocks:
function(){this.blocks = []; var
a =
null,
b;
for (
b in this.positionBlocks){
a =
b;
break}
a = this.positionBlocks[
a];
for (
b = 0;
b <
a.blocks.length;
b++){var
c = {}; this.blocks.push(
c);
c.div =
OpenLayers.Util.createDiv(this.
id +
"_FrameDecorationDiv_" + b,
null,
null,
null,
"absolute",
null,
"hidden",
null);
c.image = (this.isAlphaImage?
OpenLayers.Util.createAlphaImageDiv:
OpenLayers.Util.createImage)(this.
id +
1178 "_FrameDecorationImg_" + b,
null, this.imageSize, this.imageSrc,
"absolute",
null,
null,
null);
c.div.appendChild(
c.image); this.groupDiv.appendChild(
c.div)}}, updateBlocks:
function(){this.blocks || this.createBlocks();
if (this.size && this.relativePosition){
for (var
a = this.positionBlocks[this.relativePosition],
b = 0;
b <
a.blocks.length;
b++){var
c =
a.blocks[
b],
d = this.blocks[
b],
e =
c.anchor.left,
f =
c.anchor.bottom,
g =
c.anchor.right,
h =
c.anchor.top,
k = isNaN(
c.size.w)?this.size.w - (
g +
e):
c.size.
w,
l = isNaN(
c.size.
h)?
this.size.
h - (
f +
1179 h):
c.size.
h;
d.div.style.width = (0 >
k?0:
k) +
"px";
d.div.style.height = (0 >
l?0:
l) +
"px";
d.div.style.left =
null !=
e?
e +
"px":
"";
d.div.style.bottom =
null !=
f?
f +
"px":
"";
d.div.style.right =
null !=
g?
g +
"px":
"";
d.div.style.top =
null !=
h?
h +
"px":
"";
d.image.style.left =
c.position.x +
"px";
d.image.style.top =
c.position.y +
"px"}this.contentDiv.style.left = this.padding.left +
"px"; this.contentDiv.style.top = this.padding.top +
"px"}}, CLASS_NAME:
"OpenLayers.Popup.Framed"});
OpenLayers.Popup.FramedCloud =
OpenLayers.Class(
OpenLayers.Popup.Framed, {contentDisplayClass:
"olFramedCloudPopupContent", autoSize:!0, panMapIfOutOfView:!0, imageSize:new
OpenLayers.
Size(1276, 736), isAlphaImage:!1, fixedRelativePosition:!1, positionBlocks:{tl:{offset:
new OpenLayers.Pixel(44, 0), padding:
new OpenLayers.Bounds(8, 40, 8, 9), blocks:[{size:
new OpenLayers.Size(
"auto",
"auto"), anchor:
new OpenLayers.Bounds(0, 51, 22, 0),
position:
new OpenLayers.Pixel(0, 0)}, {size:
new OpenLayers.Size(22,
"auto"), anchor:
new OpenLayers.Bounds(
null,
1180 50, 0, 0),
position:
new OpenLayers.Pixel( - 1238, 0)}, {size:
new OpenLayers.Size(
"auto", 19), anchor:
new OpenLayers.Bounds(0, 32, 22,
null),
position:
new OpenLayers.Pixel(0, - 631)}, {size:
new OpenLayers.Size(22, 18), anchor:
new OpenLayers.Bounds(
null, 32, 0,
null),
position:
new OpenLayers.Pixel( - 1238, - 632)}, {size:
new OpenLayers.Size(81, 35), anchor:
new OpenLayers.Bounds(
null, 0, 0,
null),
position:
new OpenLayers.Pixel(0, - 688)}]}, tr:{offset:
new OpenLayers.Pixel( - 45, 0), padding:
new OpenLayers.Bounds(8, 40, 8, 9), blocks:[{size:
new OpenLayers.Size(
"auto",
1181 "auto"), anchor:
new OpenLayers.Bounds(0, 51, 22, 0),
position:
new OpenLayers.Pixel(0, 0)}, {size:
new OpenLayers.Size(22,
"auto"), anchor:
new OpenLayers.Bounds(
null, 50, 0, 0),
position:
new OpenLayers.Pixel( - 1238, 0)}, {size:
new OpenLayers.Size(
"auto", 19), anchor:
new OpenLayers.Bounds(0, 32, 22,
null),
position:
new OpenLayers.Pixel(0, - 631)}, {size:
new OpenLayers.Size(22, 19), anchor:
new OpenLayers.Bounds(
null, 32, 0,
null),
position:
new OpenLayers.Pixel( - 1238, - 631)}, {size:
new OpenLayers.Size(81, 35), anchor:
new OpenLayers.Bounds(0,
1182 0,
null,
null),
position:
new OpenLayers.Pixel( - 215, - 687)}]}, bl:{offset:
new OpenLayers.Pixel(45, 0), padding:
new OpenLayers.Bounds(8, 9, 8, 40), blocks:[{size:
new OpenLayers.Size(
"auto",
"auto"), anchor:
new OpenLayers.Bounds(0, 21, 22, 32),
position:
new OpenLayers.Pixel(0, 0)}, {size:
new OpenLayers.Size(22,
"auto"), anchor:
new OpenLayers.Bounds(
null, 21, 0, 32),
position:
new OpenLayers.Pixel( - 1238, 0)}, {size:
new OpenLayers.Size(
"auto", 21), anchor:
new OpenLayers.Bounds(0, 0, 22,
null),
position:
new OpenLayers.Pixel(0, - 629)}, {size:
new OpenLayers.Size(22,
1183 21), anchor:
new OpenLayers.Bounds(
null, 0, 0,
null),
position:
new OpenLayers.Pixel( - 1238, - 629)}, {size:
new OpenLayers.Size(81, 33), anchor:
new OpenLayers.Bounds(
null,
null, 0, 0),
position:
new OpenLayers.Pixel( - 101, - 674)}]}, br:{offset:
new OpenLayers.Pixel( - 44, 0), padding:
new OpenLayers.Bounds(8, 9, 8, 40), blocks:[{size:
new OpenLayers.Size(
"auto",
"auto"), anchor:
new OpenLayers.Bounds(0, 21, 22, 32),
position:
new OpenLayers.Pixel(0, 0)}, {size:
new OpenLayers.Size(22,
"auto"), anchor:
new OpenLayers.Bounds(
null, 21, 0, 32),
position:
new OpenLayers.Pixel( - 1238,
1184 0)}, {size:
new OpenLayers.Size(
"auto", 21), anchor:
new OpenLayers.Bounds(0, 0, 22,
null),
position:
new OpenLayers.Pixel(0, - 629)}, {size:
new OpenLayers.Size(22, 21), anchor:
new OpenLayers.Bounds(
null, 0, 0,
null),
position:
new OpenLayers.Pixel( - 1238, - 629)}, {size:
new OpenLayers.Size(81, 33), anchor:
new OpenLayers.Bounds(0,
null,
null, 0),
position:
new OpenLayers.Pixel( - 311, - 674)}]}}, minSize:
new OpenLayers.Size(105, 10), maxSize:
new OpenLayers.Size(1200, 660), initialize:
function(
a,
b,
c,
d,
e,
f,
g){this.imageSrc =
OpenLayers.Util.getImageLocation(
"cloud-popup-relative.png");
1185 OpenLayers.Popup.Framed.prototype.initialize.apply(
this, arguments); this.contentDiv.className = this.contentDisplayClass}, CLASS_NAME:
"OpenLayers.Popup.FramedCloud"});
OpenLayers.Tile.Image.IFrame = {useIFrame:
null, blankImageUrl:
"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAQAIBRAA7", draw:
function(){
if (
OpenLayers.Tile.Image.prototype.shouldDraw.call(
this)){var
a = this.layer.getURL(this.bounds),
b = this.useIFrame; this.useIFrame =
null !== this.maxGetUrlLength && !this.layer.async &&
a.length > this.maxGetUrlLength;
a =
b && !this.useIFrame;
b = !
b && this.useIFrame;
if (
a ||
b)this.imgDiv && this.imgDiv.parentNode === this.frame && this.frame.removeChild(this.imgDiv), this.imgDiv =
1186 null,
a && this.frame.removeChild(this.frame.firstChild)}
return OpenLayers.Tile.Image.prototype.draw.apply(
this, arguments)}, getImage:
function(){
if (!0 === this.useIFrame){
if (!this.frame.childNodes.length){var
a =
document.createElement(
"div"),
b =
a.style;
b.position =
"absolute";
b.width =
"100%";
b.height =
"100%";
b.zIndex = 1;
b.backgroundImage =
"url(" + this.blankImageUrl +
")"; this.frame.appendChild(
a)}
a = this.
id +
"_iFrame"; 9 > parseFloat(navigator.appVersion.split(
"MSIE")[1])?(
b =
document.createElement(
'<iframe name="' +
a +
'">'),
1187 b.style.backgroundColor =
"#FFFFFF",
b.style.filter =
"chroma(color=#FFFFFF)"):(
b =
document.createElement(
"iframe"),
b.style.backgroundColor =
"transparent",
b.name =
a);
b.scrolling =
"no";
b.marginWidth =
"0px";
b.marginHeight =
"0px";
b.frameBorder =
"0";
b.style.position =
"absolute";
b.style.width =
"100%";
b.style.height =
"100%"; 1 > this.layer.opacity &&
OpenLayers.Util.modifyDOMElement(
b,
null,
null,
null,
null,
null,
null, this.layer.opacity); this.frame.appendChild(
b);
return this.imgDiv =
b}
return OpenLayers.Tile.Image.prototype.getImage.apply(
this,
1188 arguments)}, createRequestForm:
function(){var
a =
document.createElement(
"form");
a.method =
"POST"; var
b = this.layer.params._OLSALT,
b = (
b?
b +
"_":
"") + this.bounds.toBBOX();
a.action =
OpenLayers.Util.urlAppend(this.layer.url,
b);
a.target = this.
id +
"_iFrame"; this.layer.getImageSize(); var
b =
OpenLayers.Util.getParameters(this.url),
c,
d;
for (
d in
b)
c =
document.createElement(
"input"),
c.type =
"hidden",
c.name =
d,
c.value =
b[
d],
a.appendChild(
c);
return a}, setImgSrc:
function(
a){
if (!0 === this.useIFrame)
if (
a){var
b = this.createRequestForm();
1189 this.frame.appendChild(
b);
b.submit(); this.frame.removeChild(
b)}
else this.imgDiv.parentNode === this.frame && (this.frame.removeChild(this.imgDiv), this.imgDiv =
null);
else OpenLayers.Tile.Image.prototype.setImgSrc.apply(
this, arguments)}, onImageLoad:
function(){
OpenLayers.Tile.Image.prototype.onImageLoad.apply(
this, arguments); !0 === this.useIFrame && (this.imgDiv.style.opacity = 1, this.frame.style.opacity = this.layer.opacity)}, createBackBuffer:
function(){var
a; !1 === this.useIFrame && (
a =
OpenLayers.Tile.Image.prototype.createBackBuffer.call(
this));
1190 return a}};
OpenLayers.Format.SOSCapabilities =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.0.0", CLASS_NAME:
"OpenLayers.Format.SOSCapabilities"});
OpenLayers.Format.SOSCapabilities.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.SOSCapabilities, {
namespaces:{ows:
"http://www.opengis.net/ows/1.1", sos:
"http://www.opengis.net/sos/1.0", gml:
"http://www.opengis.net/gml", xlink:
"http://www.w3.org/1999/xlink"}, regExes:{trimSpace:/^\
s*|\
s*
$/
g, removeSpace:/\
s*/
g, splitSpace:/\
s+/, trimComma:/\
s*,\
s*/
g}, initialize:
function(
a){
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a]); this.options =
a}, read:
function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this,
1191 [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
b = {}; this.readNode(
a,
b);
return b}, readers:{gml:
OpenLayers.Util.applyDefaults({name:
function(
a,
b){
b.name = this.getChildValue(
a)}, TimePeriod:
function(
a,
b){
b.timePeriod = {}; this.readChildNodes(
a,
b.timePeriod)}, beginPosition:
function(
a,
b){
b.beginPosition = this.getChildValue(
a)}, endPosition:
function(
a,
b){
b.endPosition = this.getChildValue(
a)}},
OpenLayers.Format.GML.v3.prototype.readers.gml), sos:{Capabilities:
function(
a,
b){this.readChildNodes(
a,
b)}, Contents:
function(
a,
1192 b){
b.contents = {}; this.readChildNodes(
a,
b.contents)}, ObservationOfferingList:
function(
a,
b){
b.offeringList = {}; this.readChildNodes(
a,
b.offeringList)}, ObservationOffering:
function(
a,
b){var
c = this.getAttributeNS(
a, this.namespaces.gml,
"id");
b[
c] = {procedures:[], observedProperties:[], featureOfInterestIds:[], responseFormats:[], resultModels:[], responseModes:[]}; this.readChildNodes(
a,
b[
c])}, time:
function(
a,
b){
b.time = {}; this.readChildNodes(
a,
b.time)}, procedure:
function(
a,
b){
b.procedures.push(this.getAttributeNS(
a,
1193 this.namespaces.xlink,
"href"))}, observedProperty:
function(
a,
b){
b.observedProperties.push(this.getAttributeNS(
a, this.namespaces.xlink,
"href"))}, featureOfInterest:
function(
a,
b){
b.featureOfInterestIds.push(this.getAttributeNS(
a, this.namespaces.xlink,
"href"))}, responseFormat:
function(
a,
b){
b.responseFormats.push(this.getChildValue(
a))}, resultModel:
function(
a,
b){
b.resultModels.push(this.getChildValue(
a))}, responseMode:
function(
a,
b){
b.responseModes.push(this.getChildValue(
a))}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers.ows},
1194 CLASS_NAME:
"OpenLayers.Format.SOSCapabilities.v1_0_0"});
OpenLayers.Handler.Pinch =
OpenLayers.Class(
OpenLayers.Handler, {started:!1, stopDown:!1, pinching:!1, last:null, start:null, touchstart:function(
a){var
b = !0; this.pinching = !1;
if (
OpenLayers.Event.isMultiTouch(
a))
this.started = !0,
this.last =
this.start = {distance:this.getDistance(a.touches), delta:0, scale:1},
this.callback(
"start", [
a,
this.start]),
b = !
this.stopDown;
else{if (this.started)return!1; this.started = !1; this.last = this.start = null}
OpenLayers.Event.preventDefault(
a);
return b}, touchmove:
function(
a){
if (this.started &&
1195 OpenLayers.Event.isMultiTouch(
a)){this.pinching = !0; var
b = this.getPinchData(
a); this.callback(
"move", [
a,
b]); this.last =
b;
OpenLayers.Event.stop(
a)}
else if (this.started)
return!1;
return!0}, touchend:
function(
a){
return this.started && !
OpenLayers.Event.isMultiTouch(
a)?(this.pinching = this.started = !1, this.callback(
"done", [
a, this.start, this.last]), this.last = this.start =
null, !1):!0}, activate:function(){var
a = !1;
OpenLayers.Handler.prototype.activate.apply(
this, arguments) && (this.pinching = !1,
a = !0);
return a}, deactivate:
function(){var
a =
1196 !1;
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments) && (this.pinching = this.started = !1, this.last = this.start =
null,
a = !0);
return a}, getDistance:
function(
a){var
b =
a[0];
a =
a[1];
return Math.sqrt(
Math.pow(
b.olClientX -
a.olClientX, 2) +
Math.pow(
b.olClientY -
a.olClientY, 2))}, getPinchData:
function(
a){
a = this.getDistance(
a.touches);
return{distance:
a, delta:this.last.distance -
a, scale:
a / this.start.distance}}, CLASS_NAME:
"OpenLayers.Handler.Pinch"});
OpenLayers.Control.NavToolbar =
OpenLayers.Class(
OpenLayers.Control.Panel, {initialize:function(
a){
OpenLayers.Control.Panel.prototype.initialize.apply(
this, [
a]); this.addControls([
new OpenLayers.Control.Navigation,
new OpenLayers.Control.ZoomBox])}, draw:
function(){var
a =
OpenLayers.Control.Panel.prototype.draw.apply(
this, arguments);
null === this.defaultControl && (this.defaultControl = this.controls[0]);
return a}, CLASS_NAME:
"OpenLayers.Control.NavToolbar"});
OpenLayers.Strategy.Refresh =
OpenLayers.Class(
OpenLayers.Strategy, {force:!1, interval:0, timer:null, activate:function(){var
a =
OpenLayers.Strategy.prototype.activate.call(
this);
a && (!0 === this.layer.visibility && this.start(), this.layer.events.on({visibilitychanged:this.
reset, scope:
this}));
return a}, deactivate:
function(){var
a =
OpenLayers.Strategy.prototype.deactivate.call(
this);
a && (this.
stop(), this.layer.events.un({visibilitychanged:this.
reset, scope:
this}));
return a},
reset:
function(){!0 === this.layer.visibility?
1197 this.start():
this.
stop()}, start:function(){this.interval && (
"number" === typeof this.interval && 0 < this.interval) && (this.timer = window.setInterval(
OpenLayers.Function.bind(
this.refresh,
this),
this.interval))}, refresh:
function(){this.layer && (this.layer.refresh &&
"function" == typeof this.layer.refresh) && this.layer.refresh({force:this.force})},
stop:
function(){
null !== this.timer && (window.clearInterval(this.timer), this.timer =
null)}, CLASS_NAME:
"OpenLayers.Strategy.Refresh"});
OpenLayers.Layer.ArcGIS93Rest =
OpenLayers.Class(
OpenLayers.Layer.Grid, {DEFAULT_PARAMS:{format:
"png"}, isBaseLayer:!0, initialize:
function(
a,
b,
c,
d){var
e = [];
c =
OpenLayers.Util.upperCaseObject(
c);
e.push(
a,
b,
c,
d);
OpenLayers.Layer.Grid.prototype.initialize.apply(
this,
e);
OpenLayers.Util.applyDefaults(this.params,
OpenLayers.Util.upperCaseObject(
this.DEFAULT_PARAMS)); this.params.TRANSPARENT &&
"true" == this.params.TRANSPARENT.toString().toLowerCase() && (
null !=
d &&
d.isBaseLayer || (this.isBaseLayer = !1),
"jpg" == this.params.FORMAT &&
1198 (this.params.FORMAT =
OpenLayers.Util.alphaHack()?
"gif":
"png"))},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.ArcGIS93Rest(this.name, this.url, this.params, this.getOptions()));
return a =
OpenLayers.Layer.Grid.prototype.clone.apply(
this, [
a])}, getURL:
function(
a){
a = this.adjustBounds(
a); var
b = this.projection.getCode().split(
":"),
b =
b[
b.length - 1],
c = this.getImageSize();
a = {
BBOX:
a.toBBOX(), SIZE:
c.w +
"," +
c.h,
F:
"image", BBOXSR:
b, IMAGESR:
b};
if (this.layerDefs){var
b = [],
d;
for (
d in this.layerDefs)this.layerDefs.hasOwnProperty(
d) &&
1199 this.layerDefs[
d] && (
b.push(
d),
b.push(
":"),
b.push(
this.layerDefs[
d]),
b.push(
";")); 0 <
b.length && (
a.LAYERDEFS =
b.join(
""))}
return this.getFullRequestString(
a)}, setLayerFilter:
function(
a,
b){this.layerDefs || (this.layerDefs = {});
b?this.layerDefs[
a] =
b:
delete this.layerDefs[
a]}, clearLayerFilter:
function(
a){
a?
delete this.layerDefs[
a]:
delete this.layerDefs}, mergeNewParams:
function(
a){
a = [
OpenLayers.Util.upperCaseObject(
a)];
return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(
this,
a)}, CLASS_NAME:
"OpenLayers.Layer.ArcGIS93Rest"});
OpenLayers.Handler.Hover =
OpenLayers.Class(
OpenLayers.Handler, {delay:500, pixelTolerance:null, stopMove:!1, px:null, timerId:null, mousemove:function(
a){this.passesTolerance(
a.xy) && (this.clearTimer(), this.callback(
"move", [
a]), this.px =
a.xy,
a =
OpenLayers.Util.extend({},
a), this.timerId = window.setTimeout(
OpenLayers.Function.bind(
this.delayedCall,
this,
a),
this.delay));
return!this.stopMove}, mouseout:
function(
a){
OpenLayers.Util.mouseLeft(
a, this.map.viewPortDiv) && (this.clearTimer(), this.callback(
"move", [
a]));
return!0},
1200 passesTolerance:
function(
a){var
b = !0; this.pixelTolerance && this.px &&
Math.sqrt(
Math.pow(
this.px.x -
a.x, 2) +
Math.pow(
this.px.y -
a.y, 2)) < this.pixelTolerance && (
b = !1);
return b}, clearTimer:
function(){
null != this.timerId && (window.clearTimeout(this.timerId), this.timerId =
null)}, delayedCall:
function(
a){this.callback(
"pause", [
a])}, deactivate:
function(){var
a = !1;
OpenLayers.Handler.prototype.deactivate.apply(
this, arguments) && (this.clearTimer(),
a = !0);
return a}, CLASS_NAME:
"OpenLayers.Handler.Hover"});
OpenLayers.Control.GetFeature =
OpenLayers.Class(
OpenLayers.Control, {protocol:null, multipleKey:null, toggleKey:null, modifiers:null, multiple:!1, click:!0, single:!0, clickout:!0, toggle:!1, clickTolerance:5, hover:!1, box:!1, maxFeatures:10, features:null, hoverFeature:null, handlers:null, hoverResponse:null, filterType:
OpenLayers.
Filter.
Spatial.
BBOX, initialize:function(
a){
a.handlerOptions =
a.handlerOptions || {};
OpenLayers.Control.prototype.initialize.apply(
this, [
a]); this.features = {}; this.handlers = {}; this.click && (this.handlers.click =
1201 new OpenLayers.Handler.Click(
this, {click:this.selectClick}, this.handlerOptions.click || {})); this.box && (this.handlers.box =
new OpenLayers.Handler.Box(
this, {done:this.selectBox},
OpenLayers.Util.extend(this.handlerOptions.box, {boxDivClassName:
"olHandlerBoxSelectFeature"})));
this.hover && (
this.handlers.hover =
new OpenLayers.Handler.Hover(
this, {move:this.cancelHover, pause:this.selectHover},
OpenLayers.Util.extend(
this.handlerOptions.hover, {delay:250, pixelTolerance:2})))}, activate:
function(){
if (!this.active)
for (var
a in this.handlers)this.handlers[
a].activate();
1202 return OpenLayers.Control.prototype.activate.apply(
this, arguments)}, deactivate:
function(){
if (this.active)
for (var
a in this.handlers)this.handlers[
a].deactivate();
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, selectClick:
function(
a){var
b = this.pixelToBounds(
a.xy); this.setModifiers(
a); this.request(
b, {single:this.single})}, selectBox:
function(
a){var
b;
if (
a instanceof
OpenLayers.Bounds)
b = this.map.getLonLatFromPixel({
x:
a.left,
y:
a.bottom}),
a = this.map.getLonLatFromPixel({x:a.right,
1203 y:a.top}),
b =
new OpenLayers.Bounds(
b.lon,
b.lat,
a.lon,
a.lat);
else{
if (this.click)
return;
b = this.pixelToBounds(
a)}this.setModifiers(this.handlers.box.dragHandler.evt); this.request(
b)}, selectHover:
function(
a){
a = this.pixelToBounds(
a.xy); this.request(
a, {single:!0, hover:!0})}, cancelHover:
function(){this.hoverResponse && (this.protocol.abort(this.hoverResponse), this.hoverResponse =
null,
OpenLayers.Element.removeClass(
this.map.viewPortDiv,
"olCursorWait"))}, request:
function(
a,
b){
b =
b || {}; var
c =
new OpenLayers.Filter.Spatial({type:this.filterType,
1204 value:
a});
OpenLayers.Element.addClass(this.map.viewPortDiv,
"olCursorWait");
c = this.protocol.read({maxFeatures:!0 ==
b.single?this.maxFeatures:
void 0, filter:
c, callback:
function(
c){
c.success() && (
c.features.length?!0 ==
b.single?this.selectBestFeature(
c.features,
a.getCenterLonLat(),
b):
this.select(
c.features):
b.hover?
this.hoverSelect():(
this.events.triggerEvent(
"clickout"),
this.clickout &&
this.unselectAll()));
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olCursorWait")}, scope:
this}); !0 ==
b.hover && (this.hoverResponse =
1205 c)}, selectBestFeature:
function(
a,
b,
c){
c =
c || {};
if (
a.length){
b =
new OpenLayers.Geometry.Point(
b.lon,
b.lat);
for (var
d,
e,
f,
g =
Number.MAX_VALUE,
h = 0;
h <
a.length && !(
d =
a[
h],
d.geometry && (
f =
b.distanceTo(
d.geometry, {edge:!1}),
f <
g && (
g =
f,
e =
d, 0 ==
g))); ++
h); !0 ==
c.hover?this.hoverSelect(
e):
this.select(
e ||
a)}}, setModifiers:function(
a){this.modifiers = {multiple:this.multiple || this.multipleKey &&
a[this.multipleKey], toggle:this.toggle || this.toggleKey &&
a[this.toggleKey]}}, select:
function(
a){this.modifiers.multiple || this.modifiers.toggle ||
1206 this.unselectAll();
OpenLayers.Util.isArray(
a) || (
a = [
a]); var
b = this.events.triggerEvent(
"beforefeaturesselected", {features:
a});
if (!1 !==
b){
for (var
c = [],
d,
e = 0,
f =
a.length;
e <
f; ++
e)
d =
a[
e], this.features[
d.fid ||
d.id]?this.modifiers.toggle && this.unselect(this.features[
d.fid ||
d.id]):(
b =
this.events.triggerEvent(
"beforefeatureselected", {feature:
d}), !1 !==
b && (this.features[
d.fid ||
d.id] =
d,
c.push(
d),
this.events.triggerEvent(
"featureselected", {feature:d}))); this.events.triggerEvent(
"featuresselected", {features:
c})}},
1207 hoverSelect:
function(
a){var
b =
a?
a.fid ||
a.id:
null,
c = this.hoverFeature?this.hoverFeature.fid || this.hoverFeature.id:
null;
c &&
c !=
b && (this.events.triggerEvent(
"outfeature", {feature:this.hoverFeature}), this.hoverFeature =
null);
b &&
b !=
c && (this.events.triggerEvent(
"hoverfeature", {feature:
a}), this.hoverFeature =
a)}, unselect:
function(
a){
delete this.features[
a.fid ||
a.id]; this.events.triggerEvent(
"featureunselected", {feature:
a})}, unselectAll:
function(){
for (var
a in this.features)this.unselect(this.features[
a])},
1208 setMap:
function(
a){
for (var
b in this.handlers)this.handlers[
b].setMap(
a);
OpenLayers.Control.prototype.setMap.apply(
this, arguments)}, pixelToBounds:
function(
a){var
b =
a.add( - this.clickTolerance / 2, this.clickTolerance / 2);
a =
a.add(this.clickTolerance / 2, - this.clickTolerance / 2);
b = this.map.getLonLatFromPixel(
b);
a = this.map.getLonLatFromPixel(
a);
return new OpenLayers.Bounds(
b.lon,
b.lat,
a.lon,
a.lat)}, CLASS_NAME:
"OpenLayers.Control.GetFeature"});
OpenLayers.Format.QueryStringFilter =
function(){
function a(
a){
a =
a.replace(/%/
g,
"\\%");
a =
a.replace(/\\\\\.(\*)?/
g,
function(
a,
b){
return b?
a:
"\\\\_"});
a =
a.replace(/\\\\\.\*/
g,
"\\\\%");
a =
a.replace(/(\\)?\.(\*)?/
g,
function(
a,
b,
c){
return b ||
c?
a:
"_"});
a =
a.replace(/(\\)?\.\*/
g,
function(
a,
b){
return b?
a:
"%"});
a =
a.replace(/\\\./
g,
".");
return a =
a.replace(/(\\)?\\\*/
g,
function(
a,
b){
return b?
a:
"*"})}var
b = {};
b[
OpenLayers.Filter.Comparison.EQUAL_TO] =
"eq";
b[
OpenLayers.Filter.Comparison.NOT_EQUAL_TO] =
"ne";
b[
OpenLayers.Filter.Comparison.LESS_THAN] =
1209 "lt";
b[
OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO] =
"lte";
b[
OpenLayers.Filter.Comparison.GREATER_THAN] =
"gt";
b[
OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO] =
"gte";
b[
OpenLayers.Filter.Comparison.LIKE] =
"ilike";
return OpenLayers.Class(
OpenLayers.Format, {wildcarded:!1, srsInBBOX:!1, write:function(
c,
d){
d =
d || {}; var
e =
c.CLASS_NAME,
e =
e.substring(
e.lastIndexOf(
".") + 1); switch (
e){
case "Spatial":
switch (
c.type){
case OpenLayers.Filter.Spatial.BBOX:
d.bbox =
c.value.toArray(); this.srsInBBOX &&
c.projection &&
1210 d.bbox.push(
c.projection.getCode());
break;
case OpenLayers.Filter.Spatial.DWITHIN:
d.tolerance =
c.distance;
case OpenLayers.Filter.Spatial.WITHIN:
d.lon =
c.value.x;
d.lat =
c.value.y;
break;
default:
OpenLayers.Console.warn(
"Unknown spatial filter type " +
c.type)}
break;
case "Comparison":
e =
b[
c.type];
if (
void 0 !==
e){var
f =
c.value;
c.type ==
OpenLayers.Filter.Comparison.LIKE && (
f =
a(
f), this.wildcarded && (
f =
"%" +
f +
"%"));
d[
c.property +
"__" +
e] =
f;
d.queryable =
d.queryable || [];
d.queryable.push(
c.property)}
else OpenLayers.Console.warn(
"Unknown comparison filter type " +
1211 c.type);
break;
case "Logical":
if (
c.type ===
OpenLayers.Filter.Logical.AND)
for (
e = 0,
f =
c.filters.length;
e <
f;
e++)
d = this.write(
c.filters[
e],
d);
else OpenLayers.Console.warn(
"Unsupported logical filter type " +
c.type);
break;
default:
OpenLayers.Console.warn(
"Unknown filter type " +
e)}
return d}, CLASS_NAME:
"OpenLayers.Format.QueryStringFilter"})}();
OpenLayers.Control.MousePosition =
OpenLayers.Class(
OpenLayers.Control, {autoActivate:!0, element:null, prefix:
"", separator:
", ", suffix:
"", numDigits:5, granularity:10, emptyString:null, lastXy:null, displayProjection:null, destroy:function(){this.deactivate();
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, activate:
function(){
return OpenLayers.Control.prototype.activate.apply(
this, arguments)?(this.map.events.register(
"mousemove",
this, this.redraw), this.map.events.register(
"mouseout",
this,
this.reset),
1212 this.redraw(), !0):!1}, deactivate:
function(){
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)?(this.map.events.unregister(
"mousemove",
this, this.redraw), this.map.events.unregister(
"mouseout",
this,
this.reset),
this.element.innerHTML =
"", !0):!1}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments); this.element || (this.div.left =
"", this.div.top =
"", this.element = this.div);
return this.div}, redraw:
function(
a){var
b;
if (
null ==
a)this.
reset();
else if (
null == this.lastXy ||
Math.abs(
a.xy.x -
1213 this.lastXy.x) >
this.granularity ||
Math.abs(
a.xy.y -
this.lastXy.y) >
this.granularity)this.lastXy =
a.xy;
else if (
b = this.map.getLonLatFromPixel(
a.xy))this.displayProjection &&
b.transform(this.map.getProjectionObject(),
this.displayProjection), this.lastXy =
a.xy,
a = this.formatOutput(
b),
a != this.element.innerHTML && (this.element.innerHTML =
a)},
reset:
function(
a){
null != this.emptyString && (this.element.innerHTML = this.emptyString)}, formatOutput:
function(
a){var
b = parseInt(this.numDigits);
return this.prefix +
a.lon.toFixed(
b) +
1214 this.separator +
a.lat.toFixed(
b) + this.suffix}, CLASS_NAME:
"OpenLayers.Control.MousePosition"});
OpenLayers.Control.Geolocate =
OpenLayers.Class(
OpenLayers.Control, {geolocation:null, available:
"geolocation"in navigator,
bind:!0, watch:!1, geolocationOptions:null, destroy:function(){this.deactivate();
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, activate:
function(){this.available && !this.geolocation && (this.geolocation = navigator.geolocation);
return this.geolocation?
OpenLayers.Control.prototype.activate.apply(
this, arguments)?(this.watch?this.watchId = this.geolocation.watchPosition(
OpenLayers.Function.bind(
this.geolocate,
1215 this),
OpenLayers.Function.bind(
this.failure,
this),
this.geolocationOptions):
this.getCurrentLocation(), !0):!1:(this.events.triggerEvent(
"locationuncapable"), !1)}, deactivate:
function(){this.active &&
null !== this.watchId && this.geolocation.clearWatch(this.watchId);
return OpenLayers.Control.prototype.deactivate.apply(
this, arguments)}, geolocate:
function(
a){var
b = (
new OpenLayers.LonLat(
a.coords.longitude,
a.coords.latitude)).transform(
new OpenLayers.Projection(
"EPSG:4326"),
this.map.getProjectionObject()); this.
bind &&
1216 this.map.setCenter(
b); this.events.triggerEvent(
"locationupdated", {
position:
a, point:
new OpenLayers.Geometry.Point(
b.lon,
b.lat)})}, getCurrentLocation:
function(){
if (!this.active || this.watch)
return!1; this.geolocation.getCurrentPosition(
OpenLayers.Function.bind(
this.geolocate,
this),
OpenLayers.Function.bind(
this.failure,
this),
this.geolocationOptions);
return!0}, failure:
function(
a){this.events.triggerEvent(
"locationfailed", {error:
a})}, CLASS_NAME:
"OpenLayers.Control.Geolocate"});
OpenLayers.Tile.UTFGrid =
OpenLayers.Class(
OpenLayers.Tile, {url:null, utfgridResolution:2, json:null, format:null, destroy:function(){this.clear();
OpenLayers.Tile.prototype.destroy.apply(
this, arguments)}, draw:
function(){var
a =
OpenLayers.Tile.prototype.draw.apply(
this, arguments);
if (
a)
if (this.isLoading?(this.abortLoading(), this.events.triggerEvent(
"reload")):(
this.isLoading = !0,
this.events.triggerEvent(
"loadstart")),
this.url =
this.layer.getURL(
this.bounds),
this.layer.useJSONP){var
b =
new OpenLayers.Protocol.Script({url:this.url,
1217 callback:
function(
a){this.isLoading = !1; this.events.triggerEvent(
"loadend"); this.json =
a.data}, scope:
this});
b.read(); this.request =
b}
else this.request =
OpenLayers.Request.GET({url:this.url, callback:
function(
a){this.isLoading = !1; this.events.triggerEvent(
"loadend"); 200 ===
a.status && this.parseData(
a.responseText)}, scope:
this});
else this.unload();
return a}, abortLoading:
function(){this.request && (this.request.abort(),
delete this.request); this.isLoading = !1}, getFeatureInfo:
function(
a,
b){var
c =
null;
if (this.json){var
d =
1218 this.getFeatureId(
a,
b);
null !==
d && (
c = {id:
d, data:this.json.data[
d]})}
return c}, getFeatureId:
function(
a,
b){var
c =
null;
if (this.json){var
d = this.utfgridResolution,
d = this.json.grid[
Math.floor(
b /
d)].charCodeAt(
Math.floor(
a /
d)),
d = this.indexFromCharCode(
d),
e = this.json.keys; !isNaN(
d) &&
d in
e && (
c =
e[
d])}
return c}, indexFromCharCode:
function(
a){93 <=
a &&
a--; 35 <=
a &&
a--;
return a - 32}, parseData:
function(
a){this.format || (this.format =
new OpenLayers.Format.JSON); this.json = this.format.read(
a)}, clear:
function(){this.json =
1219null}, CLASS_NAME:
"OpenLayers.Tile.UTFGrid"});
OpenLayers.Protocol.HTTP =
OpenLayers.Class(
OpenLayers.Protocol, {url:null, headers:null, params:null, callback:null, scope:null, readWithPOST:!1, updateWithPOST:!1, deleteWithPOST:!1, wildcarded:!1, srsInBBOX:!1, initialize:function(
a){
a =
a || {}; this.params = {}; this.headers = {};
OpenLayers.Protocol.prototype.initialize.apply(
this, arguments);
if (!this.filterToParams &&
OpenLayers.Format.QueryStringFilter){var b = new OpenLayers.Format.QueryStringFilter({wildcarded:this.wildcarded, srsInBBOX:this.srsInBBOX}); this.filterToParams =
1220 function(
a,
d){
return b.write(
a,
d)}}}, destroy:
function(){this.headers = this.params =
null;
OpenLayers.Protocol.prototype.destroy.apply(
this)}, read:
function(
a){
OpenLayers.Protocol.prototype.read.apply(
this, arguments);
a =
a || {};
a.params =
OpenLayers.Util.applyDefaults(
a.params,
this.options.params);
a =
OpenLayers.Util.applyDefaults(
a, this.options);
a.filter && this.filterToParams && (
a.params = this.filterToParams(
a.filter,
a.params)); var
b =
void 0 !==
a.readWithPOST?
a.readWithPOST:this.readWithPOST,
c =
new OpenLayers.Protocol.Response({requestType:
"read"});
1221 b?(
b =
a.headers || {},
b[
"Content-Type"] =
"application/x-www-form-urlencoded",
c.priv =
OpenLayers.Request.POST({url:
a.url, callback:this.createCallback(this.handleRead,
c,
a), data:
OpenLayers.Util.getParameterString(
a.params), headers:
b})):
c.priv =
OpenLayers.Request.GET({url:
a.url, callback:this.createCallback(this.handleRead,
c,
a), params:
a.params, headers:
a.headers});
return c}, handleRead:
function(
a,
b){this.handleResponse(
a,
b)},
create:
function(
a,
b){
b =
OpenLayers.Util.applyDefaults(
b, this.options); var
c =
new OpenLayers.Protocol.Response({reqFeatures:
a,
1222 requestType:
"create"});
c.priv =
OpenLayers.Request.POST({url:
b.url, callback:this.createCallback(this.handleCreate,
c,
b), headers:
b.headers, data:this.format.write(
a)});
return c}, handleCreate:
function(
a,
b){this.handleResponse(
a,
b)},
update:
function(
a,
b){
b =
b || {}; var
c =
b.url ||
a.url || this.options.url +
"/" +
a.fid;
b =
OpenLayers.Util.applyDefaults(
b, this.options); var
d =
new OpenLayers.Protocol.Response({reqFeatures:
a, requestType:
"update"});
d.priv =
OpenLayers.Request[this.updateWithPOST?
"POST":
"PUT"]({url:
c, callback:this.createCallback(this.handleUpdate,
1223 d,
b), headers:
b.headers, data:this.format.write(
a)});
return d}, handleUpdate:
function(
a,
b){this.handleResponse(
a,
b)},
"delete":
function(
a,
b){
b =
b || {}; var
c =
b.url ||
a.url || this.options.url +
"/" +
a.fid;
b =
OpenLayers.Util.applyDefaults(
b, this.options); var
d =
new OpenLayers.Protocol.Response({reqFeatures:
a, requestType:
"delete"}),
e = this.deleteWithPOST?
"POST":
"DELETE",
c = {url:
c, callback:this.createCallback(this.handleDelete,
d,
b), headers:
b.headers}; this.deleteWithPOST && (
c.data = this.format.write(
a));
d.priv =
OpenLayers.Request[
e](
c);
1224 return d}, handleDelete:
function(
a,
b){this.handleResponse(
a,
b)}, handleResponse:
function(
a,
b){var
c =
a.priv;
b.callback && (200 <=
c.status && 300 >
c.status?(
"delete" !=
a.requestType && (
a.features = this.parseFeatures(
c)),
a.code =
OpenLayers.Protocol.Response.SUCCESS):
a.code =
OpenLayers.Protocol.Response.FAILURE,
b.callback.call(
b.scope,
a))}, parseFeatures:
function(
a){var
b =
a.responseXML;
b &&
b.documentElement || (
b =
a.responseText);
return!
b || 0 >=
b.length?
null:this.format.read(
b)}, commit:
function(
a,
b){
function c(
a){
for (var
b =
1225 a.features?
a.features.length:0,
c =
Array(
b),
e = 0;
e <
b; ++
e)
c[
e] =
a.features[
e].fid;
r.insertIds =
c;
d.apply(
this, [
a])}
function d(
a){this.callUserCallback(
a,
b);
q =
q &&
a.success();
f++;
f >=
p &&
b.callback && (
r.code =
q?
OpenLayers.Protocol.Response.SUCCESS:
OpenLayers.Protocol.Response.FAILURE,
b.callback.apply(
b.scope, [
r]))}
b =
OpenLayers.Util.applyDefaults(
b, this.options); var
e = [],
f = 0,
g = {};
g[
OpenLayers.State.INSERT] = [];
g[
OpenLayers.State.UPDATE] = [];
g[
OpenLayers.State.DELETE] = [];
for (var
h,
k,
l = [],
m = 0,
n =
a.length;
m <
n; ++
m)
if (
h =
1226 a[
m],
k =
g[
h.state])
k.push(
h),
l.push(
h); var
p = (0 <
g[
OpenLayers.State.INSERT].length?1:0) +
g[
OpenLayers.State.UPDATE].length +
g[
OpenLayers.State.DELETE].length,
q = !0,
r =
new OpenLayers.Protocol.Response({reqFeatures:l});
h =
g[
OpenLayers.State.INSERT]; 0 <
h.length &&
e.push(this.
create(h,
OpenLayers.Util.applyDefaults({callback:c, scope:this},
b.create)));
h =
g[
OpenLayers.State.UPDATE];
for (
m =
h.length - 1; 0 <=
m; --
m)
e.push(this.
update(h[
m],
OpenLayers.Util.applyDefaults({callback:d, scope:this},
b.update)));
h =
g[
OpenLayers.State.DELETE];
1227 for (
m =
h.length - 1; 0 <=
m; --
m)
e.push(
this[
"delete"](
h[
m],
OpenLayers.Util.applyDefaults({callback:d, scope:this},
b[
"delete"])));
return e}, abort:
function(
a){
a &&
a.priv.abort()}, callUserCallback:
function(
a,
b){var
c =
b[
a.requestType];
c &&
c.callback &&
c.callback.call(
c.scope,
a)}, CLASS_NAME:
"OpenLayers.Protocol.HTTP"});
OpenLayers.Strategy.Cluster =
OpenLayers.Class(
OpenLayers.Strategy, {distance:20, threshold:null, features:null, clusters:null, clustering:!1, resolution:null, activate:function(){var
a =
OpenLayers.Strategy.prototype.activate.call(
this);
if (
a)this.layer.events.on({beforefeaturesadded:this.cacheFeatures, featuresremoved:this.clearCache, moveend:this.cluster, scope:this});
return a}, deactivate:
function(){var
a =
OpenLayers.Strategy.prototype.deactivate.call(
this);
a && (this.clearCache(), this.layer.events.un({beforefeaturesadded:this.cacheFeatures,
1228 featuresremoved:this.clearCache, moveend:this.cluster, scope:
this}));
return a}, cacheFeatures:
function(
a){var
b = !0; this.clustering || (this.clearCache(), this.features =
a.features, this.cluster(),
b = !1);
return b}, clearCache:
function(){this.clustering || (this.features =
null)}, cluster:
function(
a){
if ((!
a ||
a.zoomChanged) &&
this.features && (
a =
this.layer.map.getResolution(),
a !=
this.resolution || !
this.clustersExist())){this.resolution =
a;
a = [];
for (var
b,
c,
d,
e = 0;
e < this.features.length; ++
e)
if (
b = this.features[
e],
b.geometry){
c =
1229 !1;
for (var
f =
a.length - 1; 0 <=
f; --
f)
if (
d =
a[
f], this.shouldCluster(
d,
b)){this.addToCluster(
d,
b);
c = !0;
break}
c ||
a.push(this.createCluster(this.features[
e]))}this.clustering = !0; this.layer.removeAllFeatures(); this.clustering = !1;
if (0 <
a.length){
if (1 < this.threshold)
for (
b =
a.slice(),
a = [],
e = 0,
d =
b.length;
e <
d; ++
e)
c =
b[
e],
c.attributes.count < this.threshold?
Array.prototype.push.apply(
a,
c.cluster):
a.push(
c); this.clustering = !0; this.layer.addFeatures(
a); this.clustering = !1}this.clusters =
a}}, clustersExist:
function(){var
a =
1230 !1;
if (this.clusters && 0 < this.clusters.length &&
this.clusters.length ==
this.layer.features.length)
for (var
a = !0,
b = 0;
b < this.clusters.length; ++
b)
if (this.clusters[
b] != this.layer.features[
b]){
a = !1;
break}
return a}, shouldCluster:
function(
a,
b){var
c =
a.geometry.getBounds().getCenterLonLat(),
d =
b.geometry.getBounds().getCenterLonLat();
return Math.sqrt(
Math.pow(
c.lon -
d.lon, 2) +
Math.pow(
c.lat -
d.lat, 2)) / this.resolution <= this.distance}, addToCluster:
function(
a,
b){
a.cluster.push(
b);
a.attributes.count += 1}, createCluster:
function(
a){var
b =
1231 a.geometry.getBounds().getCenterLonLat(),
b =
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(
b.lon,
b.lat), {count:1});
b.cluster = [
a];
return b}, CLASS_NAME:
"OpenLayers.Strategy.Cluster"});
OpenLayers.Strategy.Filter =
OpenLayers.Class(
OpenLayers.Strategy, {filter:null,
cache:null, caching:!1, activate:function(){var
a =
OpenLayers.Strategy.prototype.activate.apply(
this, arguments);
a && (this.cache = [], this.layer.events.on({beforefeaturesadded:this.handleAdd, beforefeaturesremoved:this.handleRemove, scope:
this}));
return a}, deactivate:
function(){this.cache =
null; this.layer && this.layer.events && this.layer.events.un({beforefeaturesadded:this.handleAdd, beforefeaturesremoved:this.handleRemove, scope:
this});
1232 return OpenLayers.Strategy.prototype.deactivate.apply(
this, arguments)}, handleAdd:
function(
a){
if (!this.caching && this.filter){var
b =
a.features;
a.features = [];
for (var
c,
d = 0,
e =
b.length;
d <
e; ++
d)
c =
b[
d], this.filter.evaluate(
c)?
a.features.push(
c):this.cache.push(
c)}}, handleRemove:
function(
a){this.caching || (this.cache = [])}, setFilter:
function(
a){this.filter =
a;
a = this.cache; this.cache = []; this.handleAdd({features:this.layer.features}); 0 < this.cache.length && (this.caching = !0, this.layer.removeFeatures(this.cache.slice()),
1233 this.caching = !1); 0 <
a.length && (
a = {features:
a}, this.handleAdd(
a), 0 <
a.features.length && (this.caching = !0, this.layer.addFeatures(
a.features),
this.caching = !1))}, CLASS_NAME:
"OpenLayers.Strategy.Filter"});
OpenLayers.Protocol.SOS =
function(
a){
a =
OpenLayers.Util.applyDefaults(
a,
OpenLayers.Protocol.SOS.DEFAULTS); var
b =
OpenLayers.Protocol.SOS[
"v" +
a.version.replace(/\./
g,
"_")];
if (!
b)
throw"Unsupported SOS version: " +
a.version;
return new b(
a)};
OpenLayers.Protocol.SOS.DEFAULTS = {
version:
"1.0.0"};
OpenLayers.Format.WFSDescribeFeatureType =
OpenLayers.Class(
OpenLayers.Format.XML, {regExes:{trimSpace:/^\
s*|\
s*
$/
g},
namespaces:{xsd:
"http://www.w3.org/2001/XMLSchema"}, readers:{xsd:{schema:
function(
a,
b){var
c = [],
d = {},
e,
f; this.readChildNodes(
a, {complexTypes:
c, customTypes:
d}); var
g =
a.attributes,
h,
k;
e = 0;
for (
f =
g.length;
e <
f; ++
e)
h =
g[
e],
k =
h.name, 0 ===
k.indexOf(
"xmlns")?this.setNamespace(
k.split(
":")[1] ||
"",
h.value):
b[
k] =
h.value;
b.featureTypes =
c;
b.targetPrefix = this.namespaceAlias[
b.targetNamespace];
e = 0;
for (
f =
1234 c.length;
e <
f; ++
e)
g =
c[
e],
h =
d[
g.typeName],
d[
g.typeName] && (
g.typeName =
h.name)}, complexType:
function(
a,
b){var
c = {typeName:
a.getAttribute(
"name")}; this.readChildNodes(
a,
c);
b.complexTypes.push(
c)}, complexContent:
function(
a,
b){this.readChildNodes(
a,
b)}, extension:
function(
a,
b){this.readChildNodes(
a,
b)}, sequence:
function(
a,
b){var
c = {elements:[]}; this.readChildNodes(
a,
c);
b.properties =
c.elements}, element:
function(
a,
b){var
c;
if (
b.elements){var
d = {};
c =
a.attributes;
for (var
e,
f = 0,
g =
c.length;
f <
g; ++
f)
e =
c[
f],
d[
e.name] =
1235 e.value;
c =
d.type;
c || (
c = {}, this.readChildNodes(
a,
c),
d.restriction =
c,
d.type =
c.base);
d.localType = (
c.base ||
c).split(
":").pop();
b.elements.push(
d); this.readChildNodes(
a,
d)}
b.complexTypes && (
c =
a.getAttribute(
"type"),
d =
c.split(
":").pop(),
b.customTypes[
d] = {name:a.getAttribute(
"name"), type:c})}, annotation:
function(
a,
b){
b.annotation = {}; this.readChildNodes(
a,
b.annotation)}, appinfo:
function(
a,
b){
b.appinfo || (
b.appinfo = []);
b.appinfo.push(this.getChildValue(
a))}, documentation:
function(
a,
b){
b.documentation || (
b.documentation =
1236[]); var
c = this.getChildValue(
a);
b.documentation.push({lang:
a.getAttribute(
"xml:lang"), textContent:
c.replace(this.regExes.trimSpace,
"")})}, simpleType:
function(
a,
b){this.readChildNodes(
a,
b)}, restriction:
function(
a,
b){
b.base =
a.getAttribute(
"base"); this.readRestriction(
a,
b)}}}, readRestriction:
function(
a,
b){
for (var
c =
a.childNodes,
d,
e,
f = 0,
g =
c.length;
f <
g; ++
f)
d =
c[
f], 1 ==
d.nodeType && (
e =
d.nodeName.split(
":").pop(),
d =
d.getAttribute(
"value"),
b[
e]?(
"string" == typeof
b[
e] && (
b[
e] = [
b[
e]]),
b[
e].push(
d)):
b[
e] =
d)}, read:
function(
a){
"string" ==
1237 typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
b = {};
if (
"ExceptionReport" ===
a.nodeName.split(
":").pop()){var
c =
new OpenLayers.Format.OGCExceptionReport;
b.error =
c.read(
a)}
else this.readNode(
a,
b);
return b}, CLASS_NAME:
"OpenLayers.Format.WFSDescribeFeatureType"});
OpenLayers.Format.GeoRSS =
OpenLayers.Class(
OpenLayers.Format.XML, {rssns:
"http://backend.userland.com/rss2", featureNS:
"http://mapserver.gis.umn.edu/mapserver", georssns:
"http://www.georss.org/georss", geons:
"http://www.w3.org/2003/01/geo/wgs84_pos#", featureTitle:
"Untitled", featureDescription:
"No Description", gmlParser:null, xy:!1, createGeometryFromItem:function(
a){var
b = this.getElementsByTagNameNS(
a, this.georssns,
"point"),
c = this.getElementsByTagNameNS(
a, this.geons,
"lat"),
d = this.getElementsByTagNameNS(
a,
1238 this.geons,
"long"),
e = this.getElementsByTagNameNS(
a, this.georssns,
"line"),
f = this.getElementsByTagNameNS(
a, this.georssns,
"polygon"),
g = this.getElementsByTagNameNS(
a, this.georssns,
"where");
a = this.getElementsByTagNameNS(
a, this.georssns,
"box");
if (0 <
b.length || 0 <
c.length && 0 <
d.length){0 <
b.length?(
c =
OpenLayers.String.trim(
b[0].firstChild.nodeValue).split(/\
s+/), 2 !=
c.length && (
c =
OpenLayers.String.trim(
b[0].firstChild.nodeValue).split(/\
s*,\
s*/))):
c = [parseFloat(
c[0].firstChild.nodeValue), parseFloat(
d[0].firstChild.nodeValue)];
1240 g.length?(this.gmlParser || (this.gmlParser =
new OpenLayers.Format.GML({xy:this.xy})),
h = this.gmlParser.parseFeature(
g[0]).geometry):0 <
a.length && (
c =
OpenLayers.String.trim(
a[0].firstChild.nodeValue).split(/\
s+/),
d = [], 3 <
c.length && (
b =
new OpenLayers.Geometry.Point(
c[1],
c[0]),
d.push(
b),
b =
new OpenLayers.Geometry.Point(
c[1],
c[2]),
d.push(
b),
b =
new OpenLayers.Geometry.Point(
c[3],
c[2]),
d.push(
b),
b =
new OpenLayers.Geometry.Point(
c[3],
c[0]),
d.push(
b),
b =
new OpenLayers.Geometry.Point(
c[1],
c[0]),
d.push(
b)),
h =
new OpenLayers.Geometry.Polygon([
new OpenLayers.Geometry.LinearRing(
d)]));
1241 h && (this.internalProjection && this.externalProjection) &&
h.transform(
this.externalProjection,
this.internalProjection);
return h}, createFeatureFromItem:
function(
a){var
b = this.createGeometryFromItem(
a),
c = this._getChildValue(
a,
"*",
"title", this.featureTitle),
d = this._getChildValue(
a,
"*",
"description", this._getChildValue(
a,
"*",
"content", this._getChildValue(
a,
"*",
"summary", this.featureDescription))),
e = this._getChildValue(
a,
"*",
"link");
if (!
e)
try{
e = this.getElementsByTagNameNS(
a,
"*",
"link")[0].getAttribute(
"href")}
catch (
f){
e =
1242null}
a = this._getChildValue(
a,
"*",
"id",
null);
b =
new OpenLayers.Feature.Vector(
b, {title:
c, description:
d, link:
e});
b.fid =
a;
return b}, _getChildValue:
function(
a,
b,
c,
d){
return(
a = this.getElementsByTagNameNS(
a,
b,
c)) &&
a[0] &&
a[0].firstChild &&
a[0].firstChild.nodeValue?this.getChildValue(
a[0]):void 0 ==
d?
"":
d}, read:function(
a){
"string" == typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a])); var
b =
null,
b = this.getElementsByTagNameNS(
a,
"*",
"item"); 0 ==
b.length && (
b = this.getElementsByTagNameNS(
a,
"*",
"entry"));
1243 a =
b.length;
for (var
c =
Array(
a),
d = 0;
d <
a;
d++)
c[
d] = this.createFeatureFromItem(
b[
d]);
return c}, write:
function(
a){var
b;
if (
OpenLayers.Util.isArray(
a)){
b = this.createElementNS(this.rssns,
"rss");
for (var
c = 0,
d =
a.length;
c <
d;
c++)
b.appendChild(this.createFeatureXML(
a[
c]))}
else b = this.createFeatureXML(
a);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
b])}, createFeatureXML:
function(
a){var
b = this.buildGeometryNode(
a.geometry),
c = this.createElementNS(this.rssns,
"item"),
d = this.createElementNS(this.rssns,
"title");
1244 d.appendChild(this.createTextNode(
a.attributes.title?
a.attributes.title:
"")); var
e = this.createElementNS(this.rssns,
"description");
e.appendChild(this.createTextNode(
a.attributes.description?
a.attributes.description:
""));
c.appendChild(
d);
c.appendChild(
e);
a.attributes.link && (
d = this.createElementNS(this.rssns,
"link"),
d.appendChild(this.createTextNode(
a.attributes.link)),
c.appendChild(
d));
for (var
f in
a.attributes)
"link" !=
f && (
"title" !=
f &&
"description" !=
f) && (
d = this.createTextNode(
a.attributes[
f]),
e =
f, - 1 !=
1245 f.search(
":") && (
e =
f.split(
":")[1]),
e =
this.createElementNS(
this.featureNS,
"feature:" +
e),
e.appendChild(
d),
c.appendChild(
e));
c.appendChild(
b);
return c}, buildGeometryNode:
function(
a){this.internalProjection && this.externalProjection && (
a =
a.clone(),
a.transform(
this.internalProjection,
this.externalProjection)); var
b;
if (
"OpenLayers.Geometry.Polygon" ==
a.CLASS_NAME)
b = this.createElementNS(this.georssns,
"georss:polygon"),
b.appendChild(this.buildCoordinatesNode(
a.components[0]));
else if (
"OpenLayers.Geometry.LineString" ==
1246 a.CLASS_NAME)
b = this.createElementNS(this.georssns,
"georss:line"),
b.appendChild(this.buildCoordinatesNode(
a));
else if (
"OpenLayers.Geometry.Point" ==
a.CLASS_NAME)
b = this.createElementNS(this.georssns,
"georss:point"),
b.appendChild(this.buildCoordinatesNode(
a));
else throw"Couldn't parse " +
a.CLASS_NAME;
return b}, buildCoordinatesNode:
function(
a){var
b =
null;
a.components && (
b =
a.components);
if (
b){
a =
b.length;
for (var
c =
Array(
a),
d = 0;
d <
a;
d++)
c[
d] =
b[
d].
y +
" " +
b[
d].
x;
b =
c.join(
" ")}
else b =
a.y +
" " +
a.x;
return this.createTextNode(
b)},
1247 CLASS_NAME:
"OpenLayers.Format.GeoRSS"});
OpenLayers.Format.WPSCapabilities =
OpenLayers.Class(
OpenLayers.Format.XML.VersionedOGC, {defaultVersion:
"1.0.0", CLASS_NAME:
"OpenLayers.Format.WPSCapabilities"});
OpenLayers.Format.WPSCapabilities.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{ows:
"http://www.opengis.net/ows/1.1", wps:
"http://www.opengis.net/wps/1.0.0", xlink:
"http://www.w3.org/1999/xlink"}, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, initialize:
function(
a){OpenLayers.Format.XML.prototype.initialize.apply(this, [a])}, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement);
1248 var b = {};
this.readNode(
a,
b);
return b}, readers:{wps:{Capabilities:
function(
a,
b){this.readChildNodes(
a,
b)}, ProcessOfferings:
function(
a,
b){
b.processOfferings = {}; this.readChildNodes(
a,
b.processOfferings)}, Process:
function(
a,
b){var
c = {processVersion:this.getAttributeNS(
a, this.namespaces.wps,
"processVersion")}; this.readChildNodes(
a,
c);
b[
c.identifier] =
c}, Languages:
function(
a,
b){
b.languages = []; this.readChildNodes(
a,
b.languages)}, Default:
function(
a,
b){var
c = {isDefault:!0}; this.readChildNodes(
a,
c);
b.push(
c)},
1249 Supported:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.push(
c)}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WPSCapabilities.v1_0_0"});
OpenLayers.Control.PinchZoom =
OpenLayers.Class(
OpenLayers.Control, {type:OpenLayers.Control.TYPE_TOOL, pinchOrigin:null, currentCenter:null, autoActivate:!0, preserveCenter:!1, initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this, arguments); this.handler = new OpenLayers.Handler.Pinch(this, {start:this.pinchStart, move:this.pinchMove, done:this.pinchDone}, this.handlerOptions)}, pinchStart:
function(
a,
b){var c = this.preserveCenter?this.map.getPixelFromLonLat(this.map.getCenter()):a.xy; this.currentCenter =
1250 this.pinchOrigin = c}, pinchMove:
function(
a,
b){var c = b.scale, d = this.map.layerContainerOriginPx, e = this.pinchOrigin, f = this.preserveCenter?this.map.getPixelFromLonLat(this.map.getCenter()):a.xy, g = Math.round(d.x + f.x - e.x + (c - 1) * (d.x - e.x)), d = Math.round(d.y + f.y - e.y + (c - 1) * (d.y - e.y)); this.map.applyTransform(g, d, c); this.currentCenter = f}, pinchDone:
function(
a,
b,
c){this.map.applyTransform(); a = this.map.getZoomForResolution(this.map.getResolution() / c.scale, !0); if (a !== this.map.getZoom() || !this.currentCenter.equals(this.pinchOrigin)){b =
1251 this.map.getResolutionForZoom(a); c = this.map.getLonLatFromPixel(this.pinchOrigin); var d = this.currentCenter, e = this.map.getSize(); c.lon += b * (e.w / 2 - d.x); c.lat -= b * (e.h / 2 - d.y); this.map.div.clientWidth = this.map.div.clientWidth; this.map.setCenter(c, a)}}, CLASS_NAME:
"OpenLayers.Control.PinchZoom"});
OpenLayers.Control.TouchNavigation =
OpenLayers.Class(
OpenLayers.Control, {dragPan:null, dragPanOptions:null, pinchZoom:null, pinchZoomOptions:null, clickHandlerOptions:null, documentDrag:!1, autoActivate:!0, initialize:function(a){this.handlers = {}; OpenLayers.Control.prototype.initialize.apply(this, arguments)}, destroy:
function(){this.deactivate(); this.dragPan && this.dragPan.destroy(); this.dragPan = null; this.pinchZoom && (this.pinchZoom.destroy(), delete this.pinchZoom); OpenLayers.Control.prototype.destroy.apply(this,
1252 arguments)}, activate:
function(){return OpenLayers.Control.prototype.activate.apply(this, arguments)?(this.dragPan.activate(), this.handlers.click.activate(), this.pinchZoom.activate(), !0):!1}, deactivate:
function(){return OpenLayers.Control.prototype.deactivate.apply(this, arguments)?(this.dragPan.deactivate(), this.handlers.click.deactivate(), this.pinchZoom.deactivate(), !0):!1}, draw:
function(){var a = {click:this.defaultClick, dblclick:this.defaultDblClick},
b =
OpenLayers.Util.extend({
"double":!0, stopDouble:!0,
1253 pixelTolerance:2},
this.clickHandlerOptions);
this.handlers.click =
new OpenLayers.Handler.Click(
this,
a,
b);
this.dragPan =
new OpenLayers.Control.DragPan(
OpenLayers.Util.extend({map:this.map, documentDrag:this.documentDrag},
this.dragPanOptions));
this.dragPan.draw();
this.pinchZoom =
new OpenLayers.Control.PinchZoom(
OpenLayers.Util.extend({map:this.map},
this.pinchZoomOptions))}, defaultClick:
function(
a){
a.lastTouches && 2 ==
a.lastTouches.length && this.map.zoomOut()}, defaultDblClick:
function(
a){this.map.zoomTo(this.map.zoom +
1254 1,
a.xy)}, CLASS_NAME:
"OpenLayers.Control.TouchNavigation"});
OpenLayers.Console.warn(
"OpenLayers.Rico is deprecated");
OpenLayers.Rico =
OpenLayers.Rico || {};
1255 OpenLayers.Rico.Color =
OpenLayers.Class({initialize:
function(
a,
b,
c){this.rgb = {
r:
a,
g:
b,
b:
c}}, setRed:
function(
a){this.rgb.r =
a}, setGreen:
function(
a){this.rgb.g =
a}, setBlue:
function(
a){this.rgb.b =
a}, setHue:
function(
a){var
b = this.asHSB();
b.h =
a; this.rgb =
OpenLayers.Rico.Color.HSBtoRGB(
b.h,
b.s,
b.b)}, setSaturation:
function(
a){var
b = this.asHSB();
b.s =
a; this.rgb =
OpenLayers.Rico.Color.HSBtoRGB(
b.h,
b.s,
b.b)}, setBrightness:
function(
a){var
b = this.asHSB();
b.b =
a; this.rgb =
OpenLayers.Rico.Color.HSBtoRGB(
b.h,
b.s,
b.b)},
1256 darken:
function(
a){var
b = this.asHSB(); this.rgb =
OpenLayers.Rico.Color.HSBtoRGB(
b.h,
b.s,
Math.max(
b.b -
a, 0))}, brighten:
function(
a){var
b = this.asHSB(); this.rgb =
OpenLayers.Rico.Color.HSBtoRGB(
b.h,
b.s,
Math.min(
b.b +
a, 1))}, blend:
function(
a){this.rgb.r =
Math.floor((this.rgb.r +
a.rgb.r) / 2); this.rgb.g =
Math.floor((this.rgb.g +
a.rgb.g) / 2); this.rgb.b =
Math.floor((this.rgb.b +
a.rgb.b) / 2)}, isBright:
function(){this.asHSB();
return 0.5 < this.asHSB().b}, isDark:
function(){
return!this.isBright()}, asRGB:
function(){
return"rgb(" +
1257 this.rgb.r +
"," + this.rgb.g +
"," + this.rgb.b +
")"}, asHex:
function(){
return"#" + this.rgb.r.toColorPart() + this.rgb.g.toColorPart() + this.rgb.b.toColorPart()}, asHSB:
function(){
return OpenLayers.Rico.Color.RGBtoHSB(this.rgb.r,
this.rgb.g,
this.rgb.b)}, toString:
function(){
return this.asHex()}});
1258 OpenLayers.Rico.Color.createFromHex =
function(
a){
if (4 ==
a.length){var
b =
a;
a =
"#";
for (var
c = 1; 4 >
c;
c++)
a +=
b.charAt(
c) +
b.charAt(
c)}0 ==
a.indexOf(
"#") && (
a =
a.substring(1));
b =
a.substring(0, 2);
c =
a.substring(2, 4);
a =
a.substring(4, 6);
return new OpenLayers.Rico.Color(parseInt(
b, 16), parseInt(
c, 16), parseInt(
a, 16))};
1259 OpenLayers.Rico.Color.createColorFromBackground =
function(
a){var
b =
OpenLayers.Element.getStyle(
OpenLayers.Util.getElement(
a),
"backgroundColor");
return"transparent" ==
b &&
a.parentNode?
OpenLayers.Rico.Color.createColorFromBackground(
a.parentNode):
null ==
b?
new OpenLayers.Rico.Color(255, 255, 255):0 ==
b.indexOf(
"rgb(")?(
a =
b.substring(4,
b.length - 1).split(
","),
new OpenLayers.Rico.Color(parseInt(
a[0]), parseInt(
a[1]), parseInt(
a[2]))):0 ==
b.indexOf(
"#")?
OpenLayers.Rico.Color.createFromHex(
b):
new OpenLayers.Rico.Color(255,
1261 OpenLayers.Rico.Color.HSBtoRGB =
function(
a,
b,
c){var
d = 0,
e = 0,
f = 0;
if (0 ==
b)
f =
e =
d = parseInt(255 *
c + 0.5);
else{
a = 6 * (
a -
Math.floor(
a)); var
g =
a -
Math.floor(
a),
h =
c * (1 -
b),
k =
c * (1 -
b *
g);
b =
c * (1 -
b * (1 -
g));
switch (parseInt(
a)){
case 0:
d = 255 *
c + 0.5;
e = 255 *
b + 0.5;
f = 255 *
h + 0.5;
break;
case 1:
d = 255 *
k + 0.5;
e = 255 *
c + 0.5;
f = 255 *
h + 0.5;
break;
case 2:
d = 255 *
h + 0.5;
e = 255 *
c + 0.5;
f = 255 *
b + 0.5;
break;
case 3:
d = 255 *
h + 0.5;
e = 255 *
k + 0.5;
f = 255 *
c + 0.5;
break;
case 4:
d = 255 *
b + 0.5;
e = 255 *
h + 0.5;
f = 255 *
c + 0.5;
break;
case 5:
d = 255 *
c + 0.5,
e = 255 *
h + 0.5,
f = 255 *
k + 0.5}}
return{
r:parseInt(
d),
g:parseInt(
e),
1262 b:parseInt(
f)}};
OpenLayers.Rico.Color.RGBtoHSB =
function(
a,
b,
c){var
d,
e =
a >
b?
a:
b;
c >
e && (
e =
c); var
f =
a <
b?
a:
b;
c <
f && (
f =
c);
d = 0 !=
e?(
e -
f) /
e:0;
if (0 ==
d)
a = 0;
else{var
g = (
e -
a) / (
e -
f),
h = (
e -
b) / (
e -
f);
c = (
e -
c) / (
e -
f);
a = (
a ==
e?
c -
h:
b ==
e?2 +
g -
c:4 +
h -
g) / 6; 0 >
a && (
a += 1)}
return{
h:
a,
s:
d,
b:
e / 255}};
OpenLayers.Style2 =
OpenLayers.Class({id:
null, name:
null, title:
null, description:
null, layerName:
null, isDefault:!1, rules:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.
id =
OpenLayers.Util.createUniqueID(this.CLASS_NAME +
"_")}, destroy:
function(){
for (var
a = 0,
b = this.rules.length;
a <
b;
a++)this.rules[
a].destroy();
delete this.rules},
clone:
function(){var
a =
OpenLayers.Util.extend({},
this);
if (this.rules){
a.rules = [];
for (var
b = 0,
c = this.rules.length;
b <
c; ++
b)
a.rules.push(this.rules[
b].
clone())}
return new OpenLayers.Style2(
a)},
1263 CLASS_NAME:
"OpenLayers.Style2"});
OpenLayers.Format.WFS =
OpenLayers.Class(
OpenLayers.Format.GML, {layer:null, wfsns:
"http://www.opengis.net/wfs", ogcns:
"http://www.opengis.net/ogc", initialize:function(a, b){OpenLayers.Format.GML.prototype.initialize.apply(this, [a]); this.layer = b; this.layer.featureNS && (this.featureNS = this.layer.featureNS); this.layer.options.geometry_column && (this.geometryName = this.layer.options.geometry_column); this.layer.options.typename && (this.featureName = this.layer.options.typename)}, write:
function(
a){var b = this.createElementNS(this.wfsns,
1264 "wfs:Transaction"); b.setAttribute(
"version",
"1.0.0"); b.setAttribute(
"service",
"WFS"); for (var c = 0; c < a.length; c++)switch (a[c].state){case OpenLayers.State.INSERT:b.appendChild(this.insert(a[c])); break; case OpenLayers.State.UPDATE:b.appendChild(this.update(a[c])); break; case OpenLayers.State.DELETE:b.appendChild(this.remove(a[c]))}
return OpenLayers.Format.XML.prototype.write.apply(
this, [
b])}, createFeatureXML:
function(
a){var
b = this.buildGeometryNode(
a.geometry),
c = this.createElementNS(this.featureNS,
"feature:" +
1265 this.geometryName);
c.appendChild(
b);
b = this.createElementNS(this.featureNS,
"feature:" + this.featureName);
b.appendChild(
c);
for (var
d in
a.attributes){var
c = this.createTextNode(
a.attributes[
d]),
e =
d; - 1 !=
d.search(
":") && (
e =
d.split(
":")[1]);
e = this.createElementNS(this.featureNS,
"feature:" +
e);
e.appendChild(
c);
b.appendChild(
e)}
return b}, insert:
function(
a){var
b = this.createElementNS(this.wfsns,
"wfs:Insert");
b.appendChild(this.createFeatureXML(
a));
return b},
update:
function(
a){
a.fid ||
OpenLayers.Console.userError(
OpenLayers.i18n(
"noFID"));
1266 var
b = this.createElementNS(this.wfsns,
"wfs:Update");
b.setAttribute(
"typeName", this.featurePrefix +
":" + this.featureName);
b.setAttribute(
"xmlns:" + this.featurePrefix, this.featureNS); var
c = this.createElementNS(this.wfsns,
"wfs:Property"),
d = this.createElementNS(this.wfsns,
"wfs:Name"),
e = this.createTextNode(this.geometryName);
d.appendChild(
e);
c.appendChild(
d);
d = this.createElementNS(this.wfsns,
"wfs:Value");
e = this.buildGeometryNode(
a.geometry);
a.layer &&
e.setAttribute(
"srsName",
a.layer.projection.getCode());
1267 d.appendChild(
e);
c.appendChild(
d);
b.appendChild(
c);
for (var
f in
a.attributes)
c = this.createElementNS(this.wfsns,
"wfs:Property"),
d = this.createElementNS(this.wfsns,
"wfs:Name"),
d.appendChild(this.createTextNode(
f)),
c.appendChild(
d),
d = this.createElementNS(this.wfsns,
"wfs:Value"),
d.appendChild(this.createTextNode(
a.attributes[
f])),
c.appendChild(
d),
b.appendChild(
c);
c = this.createElementNS(this.ogcns,
"ogc:Filter");
f = this.createElementNS(this.ogcns,
"ogc:FeatureId");
f.setAttribute(
"fid",
a.fid);
c.appendChild(
f);
1268 b.appendChild(
c);
return b},
remove:
function(
a){
if (!
a.fid)
return OpenLayers.Console.userError(
OpenLayers.i18n(
"noFID")), !1; var
b = this.createElementNS(this.wfsns,
"wfs:Delete");
b.setAttribute(
"typeName", this.featurePrefix +
":" + this.featureName);
b.setAttribute(
"xmlns:" + this.featurePrefix, this.featureNS); var
c = this.createElementNS(this.ogcns,
"ogc:Filter"),
d = this.createElementNS(this.ogcns,
"ogc:FeatureId");
d.setAttribute(
"fid",
a.fid);
c.appendChild(
d);
b.appendChild(
c);
return b}, destroy:
function(){this.layer =
1269null}, CLASS_NAME:
"OpenLayers.Format.WFS"});
OpenLayers.Format.SLD.v1_0_0_GeoServer =
OpenLayers.Class(
OpenLayers.Format.SLD.v1_0_0, {version:
"1.0.0", profile:
"GeoServer", readers:OpenLayers.Util.applyDefaults({sld:OpenLayers.Util.applyDefaults({Priority:function(a, b){var c = this.readers.ogc._expression.call(this, a); c && (b.priority = c)}, VendorOption:function(a, b){b.vendorOptions || (b.vendorOptions = {}); b.vendorOptions[a.getAttribute(
"name")] = this.getChildValue(a)}, TextSymbolizer:function(a, b){OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld.TextSymbolizer.apply(this,
1270 arguments); var c = this.multipleSymbolizers?b.symbolizers[b.symbolizers.length - 1]:b.symbolizer.Text; void 0 === c.graphic && (c.graphic = !1)}}, OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld)},
OpenLayers.Format.SLD.v1_0_0.prototype.readers), writers:
OpenLayers.Util.applyDefaults({sld:
OpenLayers.Util.applyDefaults({Priority:
function(
a){
return this.writers.sld._OGCExpression.call(
this,
"sld:Priority",
a)}, VendorOption:
function(
a){
return this.createElementNSPlus(
"sld:VendorOption", {attributes:{name:
a.name},
1271 value:
a.value})}, TextSymbolizer:
function(
a){var
b =
OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld.TextSymbolizer.apply(
this, arguments); !1 !==
a.graphic && (
a.externalGraphic ||
a.graphicName) && this.writeNode(
"Graphic",
a,
b);
"priority"in
a && this.writeNode(
"Priority",
a.priority,
b);
return this.addVendorOptions(
b,
a)}, PointSymbolizer:
function(
a){var
b =
OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld.PointSymbolizer.apply(
this, arguments);
return this.addVendorOptions(
b,
a)}, LineSymbolizer:
function(
a){var
b =
1272 OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld.LineSymbolizer.apply(
this, arguments);
return this.addVendorOptions(
b,
a)}, PolygonSymbolizer:
function(
a){var
b =
OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld.PolygonSymbolizer.apply(
this, arguments);
return this.addVendorOptions(
b,
a)}},
OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld)},
OpenLayers.Format.SLD.v1_0_0.prototype.writers), addVendorOptions:function(
a,
b){
if (
b.vendorOptions)
for (var
c in
b.vendorOptions)
this.writeNode(
"VendorOption", {name:c,
1273 value:b.vendorOptions[c]},
a);
return a}, CLASS_NAME:
"OpenLayers.Format.SLD.v1_0_0_GeoServer"});
OpenLayers.Layer.Boxes =
OpenLayers.Class(
OpenLayers.Layer.Markers, {drawMarker:function(a){var b = this.map.getLayerPxFromLonLat({lon:a.bounds.left, lat:a.bounds.top}), c = this.map.getLayerPxFromLonLat({lon:a.bounds.right, lat:a.bounds.bottom}); null == c || null == b?a.display(!1):(b = a.draw(b, {w:Math.max(1, c.x - b.x), h:Math.max(1, c.y - b.y)}), a.drawn || (this.div.appendChild(b), a.drawn = !0))}, removeMarker:
function(
a){OpenLayers.Util.removeItem(this.markers, a); null != a.div && a.div.parentNode == this.div && this.div.removeChild(a.div)},
1274 CLASS_NAME:
"OpenLayers.Layer.Boxes"});
OpenLayers.Format.WFSCapabilities.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.WFSCapabilities.v1, {readers:{wfs:OpenLayers.Util.applyDefaults({Service:function(a, b){b.service = {}; this.readChildNodes(a, b.service)}, Fees:function(a, b){var c = this.getChildValue(a); c &&
"none" != c.toLowerCase() && (b.fees = c)}, AccessConstraints:function(a, b){var c = this.getChildValue(a); c &&
"none" != c.toLowerCase() && (b.accessConstraints = c)}, OnlineResource:function(a, b){var c = this.getChildValue(a); c &&
"none" != c.toLowerCase() && (b.onlineResource =
1275 c)}, Keywords:function(a, b){var c = this.getChildValue(a); c &&
"none" != c.toLowerCase() && (b.keywords = c.split(
", "))}, Capability:function(a, b){b.capability = {}; this.readChildNodes(a, b.capability)}, Request:function(a, b){b.request = {}; this.readChildNodes(a, b.request)}, GetFeature:function(a, b){b.getfeature = {href:{}, formats:[]}; this.readChildNodes(a, b.getfeature)}, ResultFormat:function(a, b){for (var c = a.childNodes, d, e = 0; e < c.length; e++)d = c[e], 1 == d.nodeType && b.formats.push(d.nodeName)}, DCPType:function(a, b){this.readChildNodes(a,
1276 b)}, HTTP:function(a, b){this.readChildNodes(a, b.href)}, Get:function(a, b){b.get = a.getAttribute(
"onlineResource")}, Post:function(a, b){b.post = a.getAttribute(
"onlineResource")}, SRS:function(a, b){var c = this.getChildValue(a); c && (b.srs = c)}}, OpenLayers.Format.WFSCapabilities.v1.prototype.readers.wfs)}, CLASS_NAME:
"OpenLayers.Format.WFSCapabilities.v1_0_0"});
OpenLayers.Format.WMSCapabilities.v1_3 =
OpenLayers.Class(
OpenLayers.Format.WMSCapabilities.v1, {readers:{wms:OpenLayers.Util.applyDefaults({WMS_Capabilities:function(a, b){this.readChildNodes(a, b)}, LayerLimit:function(a, b){b.layerLimit = parseInt(this.getChildValue(a))}, MaxWidth:function(a, b){b.maxWidth = parseInt(this.getChildValue(a))}, MaxHeight:function(a, b){b.maxHeight = parseInt(this.getChildValue(a))}, BoundingBox:function(a, b){var c = OpenLayers.Format.WMSCapabilities.v1.prototype.readers.wms.BoundingBox.apply(this,
1277 [a, b]); c.srs = a.getAttribute(
"CRS"); b.bbox[c.srs] = c}, CRS:function(a, b){this.readers.wms.SRS.apply(this, [a, b])}, EX_GeographicBoundingBox:function(a, b){b.llbbox = []; this.readChildNodes(a, b.llbbox)}, westBoundLongitude:function(a, b){b[0] = this.getChildValue(a)}, eastBoundLongitude:function(a, b){b[2] = this.getChildValue(a)}, southBoundLatitude:function(a, b){b[1] = this.getChildValue(a)}, northBoundLatitude:function(a, b){b[3] = this.getChildValue(a)}, MinScaleDenominator:function(a, b){b.maxScale = parseFloat(this.getChildValue(a)).toPrecision(16)},
1278 MaxScaleDenominator:function(a, b){b.minScale = parseFloat(this.getChildValue(a)).toPrecision(16)}, Dimension:function(a, b){var c = {name:a.getAttribute(
"name").toLowerCase(), units:a.getAttribute(
"units"), unitsymbol:a.getAttribute(
"unitSymbol"), nearestVal:
"1" === a.getAttribute(
"nearestValue"), multipleVal:
"1" === a.getAttribute(
"multipleValues"),
"default":a.getAttribute(
"default") ||
"", current:
"1" === a.getAttribute(
"current"), values:this.getChildValue(a).split(
",")}; b.dimensions[c.name] = c}, Keyword:function(a,
1279 b){var c = {value:this.getChildValue(a), vocabulary:a.getAttribute(
"vocabulary")}; b.keywords && b.keywords.push(c)}}, OpenLayers.Format.WMSCapabilities.v1.prototype.readers.wms), sld:{UserDefinedSymbolization:function(a, b){this.readers.wms.UserDefinedSymbolization.apply(this, [a, b]); b.userSymbols.inlineFeature = 1 == parseInt(a.getAttribute(
"InlineFeature")); b.userSymbols.remoteWCS = 1 == parseInt(a.getAttribute(
"RemoteWCS"))}, DescribeLayer:function(a, b){this.readers.wms.DescribeLayer.apply(this, [a, b])}, GetLegendGraphic:function(a,
1280 b){this.readers.wms.GetLegendGraphic.apply(this, [a, b])}}}, CLASS_NAME:
"OpenLayers.Format.WMSCapabilities.v1_3"});
OpenLayers.Layer.Zoomify =
OpenLayers.Class(
OpenLayers.Layer.Grid, {size:null, isBaseLayer:!0, standardTileSize:256, tileOriginCorner:
"tl", numberOfTiers:0, tileCountUpToTier:null, tierSizeInTiles:null, tierImageSize:null, initialize:function(a, b, c, d){this.initializeZoomify(c); OpenLayers.Layer.Grid.prototype.initialize.apply(this, [a, b, c, {}, d])}, initializeZoomify:
function(
a){var b = a.clone(); this.size = a.clone(); a = new OpenLayers.Size(Math.ceil(b.w / this.standardTileSize), Math.ceil(b.h / this.standardTileSize)); this.tierSizeInTiles =
1281 [a]; for (this.tierImageSize = [b]; b.w > this.standardTileSize || b.h > this.standardTileSize; )b = new OpenLayers.Size(Math.floor(b.w / 2), Math.floor(b.h / 2)), a = new OpenLayers.Size(Math.ceil(b.w / this.standardTileSize), Math.ceil(b.h / this.standardTileSize)), this.tierSizeInTiles.push(a), this.tierImageSize.push(b); this.tierSizeInTiles.reverse(); this.tierImageSize.reverse(); this.numberOfTiers = this.tierSizeInTiles.length; b = [1]; this.tileCountUpToTier = [0]; for (a = 1; a < this.numberOfTiers; a++)b.unshift(Math.pow(2, a)), this.tileCountUpToTier.push(this.tierSizeInTiles[a -
12821].w * this.tierSizeInTiles[a - 1].h + this.tileCountUpToTier[a - 1]); this.serverResolutions || (this.serverResolutions = b)}, destroy:
function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments); this.tileCountUpToTier.length = 0; this.tierSizeInTiles.length = 0; this.tierImageSize.length = 0},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.Zoomify(this.name, this.url, this.size, this.options)); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this, [a])}, getURL:
function(
a){a = this.adjustBounds(a); var b =
1283 this.getServerResolution(), c = Math.round((a.left - this.tileOrigin.lon) / (b * this.tileSize.w)); a = Math.round((this.tileOrigin.lat - a.top) / (b * this.tileSize.h)); b = this.getZoomForResolution(b); c =
"TileGroup" + Math.floor((c + a * this.tierSizeInTiles[b].w + this.tileCountUpToTier[b]) / 256) +
"/" + b +
"-" + c +
"-" + a +
".jpg"; b = this.url; OpenLayers.Util.isArray(b) && (b = this.selectUrl(c, b)); return b + c}, getImageSize:
function(){if (0 < arguments.length){var a = this.adjustBounds(arguments[0]), b = this.getServerResolution(), c = Math.round((a.left -
1284 this.tileOrigin.lon) / (b * this.tileSize.w)), a = Math.round((this.tileOrigin.lat - a.top) / (b * this.tileSize.h)), b = this.getZoomForResolution(b), d = this.standardTileSize, e = this.standardTileSize; c == this.tierSizeInTiles[b].w - 1 && (d = this.tierImageSize[b].w % this.standardTileSize); a == this.tierSizeInTiles[b].h - 1 && (e = this.tierImageSize[b].h % this.standardTileSize); return new OpenLayers.Size(d, e)}
return this.tileSize}, setMap:
function(
a){
OpenLayers.Layer.Grid.prototype.setMap.apply(
this, arguments); this.tileOrigin =
new OpenLayers.LonLat(this.map.maxExtent.left,
1285 this.map.maxExtent.top)}, CLASS_NAME:
"OpenLayers.Layer.Zoomify"});
OpenLayers.Layer.MapServer =
OpenLayers.Class(
OpenLayers.Layer.Grid, {DEFAULT_PARAMS:{mode:
"map", map_imagetype:
"png"}, initialize:
function(
a,
b,
c,
d){OpenLayers.Layer.Grid.prototype.initialize.apply(this, arguments); this.params = OpenLayers.Util.applyDefaults(this.params, this.DEFAULT_PARAMS); if (null == d || null == d.isBaseLayer)this.isBaseLayer =
"true" != this.params.transparent && !0 != this.params.transparent},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.MapServer(this.name, this.url, this.params, this.getOptions()));
1286 return a = OpenLayers.Layer.Grid.prototype.clone.apply(this, [a])}, getURL:
function(
a){a = this.adjustBounds(a); a = [a.left, a.bottom, a.right, a.top]; var b = this.getImageSize(); return this.getFullRequestString({mapext:a, imgext:a, map_size:[b.w, b.h], imgx:b.w / 2, imgy:b.h / 2, imgxy:[b.w, b.h]})}, getFullRequestString:
function(
a,
b){var
c =
null ==
b?this.url:
b,
d =
OpenLayers.Util.extend({}, this.params),
d =
OpenLayers.Util.extend(
d,
a),
e =
OpenLayers.Util.getParameterString(
d);
OpenLayers.Util.isArray(
c) && (
c = this.selectUrl(
e,
c));
1287 var
e =
OpenLayers.Util.upperCaseObject(
OpenLayers.Util.getParameters(
c)),
f;
for (
f in
d)
f.toUpperCase()in
e &&
delete d[
f];
e =
OpenLayers.Util.getParameterString(
d);
d =
c;
e =
e.replace(/,/
g,
"+");
"" !=
e && (
f =
c.charAt(
c.length - 1),
d =
"&" ==
f ||
"?" ==
f?
d +
e: - 1 ==
c.indexOf(
"?")?
d + (
"?" +
e):
d + (
"&" +
e));
return d}, CLASS_NAME:
"OpenLayers.Layer.MapServer"});
OpenLayers.Renderer.VML =
OpenLayers.Class(
OpenLayers.Renderer.Elements, {xmlns:
"urn:schemas-microsoft-com:vml", symbolCache:{}, offset:
null, initialize:
function(
a){
if (this.supported()){
if (!
document.namespaces.olv){
document.namespaces.add(
"olv", this.xmlns);
for (var
b =
document.createStyleSheet(),
c =
"shape rect oval fill stroke imagedata group textbox".split(
" "),
d = 0,
e =
c.length;
d <
e;
d++)
b.addRule(
"olv\\:" +
c[
d],
"behavior: url(#default#VML); position: absolute; display: inline-block;")}
OpenLayers.Renderer.Elements.prototype.initialize.apply(
this,
1288 arguments)}}, supported:
function(){
return!!
document.namespaces}, setExtent:
function(
a,
b){var
c =
OpenLayers.Renderer.Elements.prototype.setExtent.apply(
this, arguments),
d = this.getResolution(),
e =
a.left /
d | 0,
d =
a.top /
d - this.size.h | 0;
b || !this.offset?(this.offset = {
x:
e,
y:
d},
d =
e = 0):(
e -=
this.offset.
x,
d -=
this.offset.
y); this.
root.coordorigin =
e - this.xOffset +
" " +
d;
for (var
e = [this.
root, this.vectorRoot, this.textRoot],
f = 0,
g =
e.length;
f <
g; ++
f)
d =
e[
f],
d.coordsize =
this.size.w +
" " +
this.size.h;
this.root.style.flip =
"y";
return c},
1289 setSize:
function(
a){
OpenLayers.Renderer.prototype.setSize.apply(
this, arguments);
for (var
b = [this.rendererRoot, this.
root, this.vectorRoot, this.textRoot],
c = this.size.w +
"px",
d =
this.size.h +
"px",
e,
f = 0,
g =
b.length;
f <
g; ++
f)
e =
b[
f],
e.style.width =
c,
e.style.height =
d}, getNodeType:
function(
a,
b){var
c =
null;
switch (
a.CLASS_NAME){
case "OpenLayers.Geometry.Point":
c =
b.externalGraphic?
"olv:rect":this.isComplexSymbol(
b.graphicName)?
"olv:shape":
"olv:oval";
break;
case "OpenLayers.Geometry.Rectangle":
c =
"olv:rect";
break;
case "OpenLayers.Geometry.LineString":
case "OpenLayers.Geometry.LinearRing":
case "OpenLayers.Geometry.Polygon":
case "OpenLayers.Geometry.Curve":
c =
1290 "olv:shape"}
return c}, setStyle:
function(
a,
b,
c,
d){
b =
b ||
a._style;
c =
c ||
a._options; var
e =
b.fillColor,
f =
b.title ||
b.graphicTitle;
f && (
a.title =
f);
if (
"OpenLayers.Geometry.Point" ===
a._geometryClass)
if (
b.externalGraphic){
c.isFilled = !0; var
e =
b.graphicWidth ||
b.graphicHeight,
f =
b.graphicHeight ||
b.graphicWidth,
e =
e?
e:2 *
b.pointRadius,
f =
f?
f:2 *
b.pointRadius,
g = this.getResolution(),
h =
void 0 !=
b.graphicXOffset?
b.graphicXOffset: - (0.5 *
e),
k =
void 0 !=
b.graphicYOffset?
b.graphicYOffset: - (0.5 *
f);
a.style.left = ((
d.x - this.featureDx) /
1291 g - this.offset.x +
h | 0) +
"px";
a.style.top = (
d.y /
g - this.offset.y - (
k +
f) | 0) +
"px";
a.style.width =
e +
"px";
a.style.height =
f +
"px";
a.style.flip =
"y";
e =
"none";
c.isStroked = !1}
else this.isComplexSymbol(
b.graphicName)?(
f = this.importSymbol(
b.graphicName),
a.path =
f.path,
a.coordorigin =
f.left +
"," +
f.bottom,
f =
f.size,
a.coordsize =
f +
"," +
f, this.drawCircle(
a,
d,
b.pointRadius),
a.style.flip =
"y"):
this.drawCircle(
a,
d,
b.pointRadius);
c.isFilled?
a.fillcolor =
e:
a.filled =
"false";
d =
a.getElementsByTagName(
"fill");
d = 0 ==
d.length?
null:
d[0];
c.isFilled?
1292 (
d || (
d = this.createNode(
"olv:fill",
a.id +
"_fill")),
d.opacity =
b.fillOpacity,
"OpenLayers.Geometry.Point" ===
a._geometryClass &&
b.externalGraphic && (
b.graphicOpacity && (
d.opacity =
b.graphicOpacity),
d.src =
b.externalGraphic,
d.type =
"frame",
b.graphicWidth &&
b.graphicHeight || (
d.aspect =
"atmost")),
d.parentNode !=
a &&
a.appendChild(
d)):
d &&
a.removeChild(
d);
e =
b.rotation;
if (
void 0 !==
e ||
void 0 !==
a._rotation)
a._rotation =
e,
b.externalGraphic?(
this.graphicRotate(
a,
h,
k,
b),
d.opacity = 0):
"OpenLayers.Geometry.Point" ===
a._geometryClass &&
1293 (
a.style.rotation =
e || 0);
h =
a.getElementsByTagName(
"stroke");
h = 0 ==
h.length?
null:
h[0];
c.isStroked?(
h || (
h =
this.createNode(
"olv:stroke",
a.id +
"_stroke"),
a.appendChild(
h)),
h.on = !0,
h.color =
b.strokeColor,
h.weight =
b.strokeWidth +
"px",
h.opacity =
b.strokeOpacity,
h.endcap =
"butt" ==
b.strokeLinecap?
"flat":
b.strokeLinecap ||
"round",
b.strokeDashstyle && (
h.dashstyle =
this.dashStyle(
b))):(
a.stroked = !1,
h && (
h.on = !1));
"inherit" !=
b.cursor &&
null !=
b.cursor && (
a.style.cursor =
b.cursor);
return a}, graphicRotate:
function(
a,
b,
c,
d){
d =
1294 d ||
a._style; var
e =
d.rotation || 0,
f,
g;
if (
d.graphicWidth &&
d.graphicHeight){
g =
Math.max(
d.graphicWidth,
d.graphicHeight);
f =
d.graphicWidth /
d.graphicHeight; var
h =
Math.round(
d.graphicWidth ||
g *
f),
k =
Math.round(
d.graphicHeight ||
g);
a.style.width =
h +
"px";
a.style.height =
k +
"px"; var
l =
document.getElementById(
a.id +
"_image");
l || (
l = this.createNode(
"olv:imagedata",
a.id +
"_image"),
a.appendChild(
l));
l.style.width =
h +
"px";
l.style.height =
k +
"px";
l.src =
d.externalGraphic;
l.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='', sizingMethod='scale')";
1295 l =
e *
Math.PI / 180;
e =
Math.sin(
l);
l =
Math.cos(
l);
e =
"progid:DXImageTransform.Microsoft.Matrix(M11=" +
l +
",M12=" + -
e +
",M21=" +
e +
",M22=" +
l +
",SizingMethod='auto expand')\n"; (
l =
d.graphicOpacity ||
d.fillOpacity) && 1 !=
l && (
e +=
"progid:DXImageTransform.Microsoft.BasicImage(opacity=" +
l +
")\n");
a.style.filter =
e;
e =
new OpenLayers.Geometry.Point( -
b, -
c);
h = (
new OpenLayers.Bounds(0, 0,
h,
k)).toGeometry();
h.rotate(
d.rotation,
e);
h =
h.getBounds();
a.style.left =
Math.round(parseInt(
a.style.left) +
h.left) +
"px";
a.style.top =
Math.round(parseInt(
a.style.top) -
1296 h.bottom) +
"px"}
else{var
m =
new Image;
m.onreadystatechange =
OpenLayers.Function.bind(
function(){
if (
"complete" ==
m.readyState ||
"interactive" ==
m.readyState)
f =
m.width /
m.height,
g =
Math.max(2 *
d.pointRadius,
d.graphicWidth || 0,
d.graphicHeight || 0),
b *=
f,
d.graphicWidth =
g *
f,
d.graphicHeight =
g, this.graphicRotate(
a,
b,
c,
d)},
this);
m.src =
d.externalGraphic}}, postDraw:
function(
a){
a.style.visibility =
"visible"; var
b =
a._style.fillColor,
c =
a._style.strokeColor;
"none" ==
b &&
a.fillcolor !=
b && (
a.fillcolor =
b);
"none" ==
c &&
a.strokecolor !=
1297 c && (
a.strokecolor =
c)}, setNodeDimension:
function(
a,
b){var
c =
b.getBounds();
if (
c){var
d = this.getResolution(),
c =
new OpenLayers.Bounds((
c.left -
this.featureDx) /
d -
this.offset.x | 0,
c.bottom /
d -
this.offset.y | 0, (
c.right -
this.featureDx) /
d -
this.offset.x | 0,
c.top /
d -
this.offset.y | 0);
a.style.left =
c.left +
"px";
a.style.top =
c.top +
"px";
a.style.width =
c.getWidth() +
"px";
a.style.height =
c.getHeight() +
"px";
a.coordorigin =
c.left +
" " +
c.top;
a.coordsize =
c.getWidth() +
" " +
c.getHeight()}}, dashStyle:
function(
a){
a =
a.strokeDashstyle;
switch (
a){
case "solid":
case "dot":
case "dash":
case "dashdot":
case "longdash":
case "longdashdot":
return a;
1298 default:
return a =
a.split(/[ ,]/), 2 ==
a.length?1 *
a[0] >= 2 *
a[1]?
"longdash":1 ==
a[0] || 1 ==
a[1]?
"dot":
"dash":4 ==
a.length?1 *
a[0] >= 2 *
a[1]?
"longdashdot":
"dashdot":
"solid"}}, createNode:
function(
a,
b){var
c =
document.createElement(
a);
b && (
c.id =
b);
c.unselectable =
"on";
c.onselectstart =
OpenLayers.Function.False;
return c}, nodeTypeCompare:
function(
a,
b){var
c =
b,
d =
c.indexOf(
":"); - 1 !=
d && (
c =
c.substr(
d + 1)); var
e =
a.nodeName,
d =
e.indexOf(
":"); - 1 !=
d && (
e =
e.substr(
d + 1));
return c ==
e}, createRenderRoot:
function(){
return this.nodeFactory(this.container.id +
1299 "_vmlRoot",
"div")}, createRoot:
function(
a){
return this.nodeFactory(this.container.id +
a,
"olv:group")}, drawPoint:
function(
a,
b){
return this.drawCircle(
a,
b, 1)}, drawCircle:
function(
a,
b,
c){
if (!isNaN(
b.x) && !isNaN(
b.y)){var
d = this.getResolution();
a.style.left = ((
b.x - this.featureDx) /
d - this.offset.x | 0) -
c +
"px";
a.style.top = (
b.y /
d - this.offset.y | 0) -
c +
"px";
b = 2 *
c;
a.style.width =
b +
"px";
a.style.height =
b +
"px";
return a}
return!1}, drawLineString:
function(
a,
b){
return this.drawLine(
a,
b, !1)}, drawLinearRing:
function(
a,
b){
return this.drawLine(
a,
1300 b, !0)}, drawLine:
function(
a,
b,
c){this.setNodeDimension(
a,
b);
for (var
d = this.getResolution(),
e =
b.components.length,
f =
Array(
e),
g,
h,
k = 0;
k <
e;
k++)
g =
b.components[
k],
h = (
g.x -
this.featureDx) /
d - this.offset.x | 0,
g =
g.y /
d - this.offset.y | 0,
f[
k] =
" " +
h +
"," +
g +
" l ";
b =
c?
" x e":
" e";
a.path =
"m" +
f.join(
"") +
b;
return a}, drawPolygon:
function(
a,
b){this.setNodeDimension(
a,
b); var
c = this.getResolution(),
d = [],
e,
f,
g,
h,
k,
l,
m,
n,
p,
q;
e = 0;
for (
f =
b.components.length;
e <
f;
e++){
d.push(
"m");
g =
b.components[
e].components;
h = 0 ===
e;
l =
k =
null;
m = 0;
1301 for (
n =
g.length;
m <
n;
m++)
p =
g[
m],
q = (
p.x - this.featureDx) /
c - this.offset.x | 0,
p =
p.y /
c -
this.offset.y | 0,
q =
" " +
q +
"," +
p,
d.push(
q), 0 ==
m &&
d.push(
" l"),
h || (
k?
k !=
q && (
l?
l !=
q && (
h = !0):
l =
q):
k =
q);
d.push(
h?
" x ":
" ")}
d.push(
"e");
a.path =
d.join(
"");
return a}, drawRectangle:
function(
a,
b){var
c = this.getResolution();
a.style.left = ((
b.x - this.featureDx) /
c - this.offset.x | 0) +
"px";
a.style.top = (
b.y /
c - this.offset.y | 0) +
"px";
a.style.width = (
b.width /
c | 0) +
"px";
a.style.height = (
b.height /
c | 0) +
"px";
return a}, drawText:
function(
a,
b,
c){var
d = this.nodeFactory(
a +
1302 this.LABEL_ID_SUFFIX,
"olv:rect"),
e = this.nodeFactory(
a + this.LABEL_ID_SUFFIX +
"_textbox",
"olv:textbox"),
f = this.getResolution();
d.style.left = ((
c.x - this.featureDx) /
f - this.offset.x | 0) +
"px";
d.style.top = (
c.y /
f - this.offset.y | 0) +
"px";
d.style.flip =
"y";
e.innerText =
b.label;
"inherit" !=
b.cursor &&
null !=
b.cursor && (
e.style.cursor =
b.cursor);
b.fontColor && (
e.style.color =
b.fontColor);
b.fontOpacity && (
e.style.filter =
"alpha(opacity=" + 100 *
b.fontOpacity +
")");
b.fontFamily && (
e.style.fontFamily =
b.fontFamily);
b.fontSize && (
e.style.fontSize =
1303 b.fontSize);
b.fontWeight && (
e.style.fontWeight =
b.fontWeight);
b.fontStyle && (
e.style.fontStyle =
b.fontStyle); !0 ===
b.labelSelect && (
d._featureId =
a,
e._featureId =
a,
e._geometry =
c,
e._geometryClass =
c.CLASS_NAME);
e.style.whiteSpace =
"nowrap";
e.inset =
"1px,0px,0px,0px";
d.parentNode || (
d.appendChild(
e), this.textRoot.appendChild(
d));
b =
b.labelAlign ||
"cm"; 1 ==
b.length && (
b +=
"m");
a =
e.clientWidth *
OpenLayers.Renderer.VML.LABEL_SHIFT[
b.substr(0, 1)];
e =
e.clientHeight *
OpenLayers.Renderer.VML.LABEL_SHIFT[
b.substr(1, 1)];
d.style.left =
1304 parseInt(
d.style.left) -
a - 1 +
"px";
d.style.top = parseInt(
d.style.top) +
e +
"px"}, moveRoot:
function(
a){var
b = this.map.getLayer(
a.container.id);
b instanceof
OpenLayers.Layer.Vector.RootContainer && (
b = this.map.getLayer(this.container.id));
b &&
b.renderer.clear();
OpenLayers.Renderer.Elements.prototype.moveRoot.apply(
this, arguments);
b &&
b.redraw()}, importSymbol:
function(
a){var
b = this.container.id +
"-" +
a,
c = this.symbolCache[
b];
if (
c)
return c;
c =
OpenLayers.Renderer.symbol[
a];
if (!
c)
throw Error(
a +
" is not a valid symbol name");
1305 a =
new OpenLayers.Bounds(
Number.MAX_VALUE,
Number.MAX_VALUE, 0, 0);
for (var
d = [
"m"],
e = 0;
e <
c.length;
e += 2){var
f =
c[
e],
g =
c[
e + 1];
a.left =
Math.min(
a.left,
f);
a.bottom =
Math.min(
a.bottom,
g);
a.right =
Math.max(
a.right,
f);
a.top =
Math.max(
a.top,
g);
d.push(
f);
d.push(
g); 0 ==
e &&
d.push(
"l")}
d.push(
"x e");
c =
d.join(
" ");
d = (
a.getWidth() -
a.getHeight()) / 2; 0 <
d?(
a.bottom -=
d,
a.top +=
d):(
a.left +=
d,
a.right -=
d);
c = {path:
c, size:
a.getWidth(), left:
a.left, bottom:
a.bottom};
return this.symbolCache[
b] =
c}, CLASS_NAME:
"OpenLayers.Renderer.VML"});
1306 OpenLayers.Renderer.VML.LABEL_SHIFT = {
l:0,
c:0.5,
r:1,
t:0,
m:0.5,
b:1};
OpenLayers.Control.CacheRead =
OpenLayers.Class(
OpenLayers.Control, {fetchEvent:
"tileloadstart", layers:null, autoActivate:!0, setMap:function(
a){
OpenLayers.Control.prototype.setMap.apply(
this, arguments); var
b,
c = this.layers ||
a.layers;
for (
b =
c.length - 1; 0 <=
b; --
b)
this.addLayer({layer:c[b]});
if (!this.layers)
a.events.on({addlayer:this.addLayer, removeLayer:this.removeLayer, scope:this})}, addLayer:
function(
a){
a.layer.events.register(this.fetchEvent,
this, this.fetch)}, removeLayer:
function(
a){
a.layer.events.unregister(this.fetchEvent,
1307 this, this.fetch)}, fetch:
function(
a){
if (this.active && window.localStorage &&
a.tile instanceof
OpenLayers.Tile.Image){var
b =
a.tile,
c =
b.url; !
b.layer.crossOriginKeyword && (
OpenLayers.ProxyHost && 0 ===
c.indexOf(
OpenLayers.ProxyHost)) && (
c =
OpenLayers.Control.CacheWrite.urlMap[
c]);
if (
c = window.localStorage.getItem(
"olCache_" +
c))
b.url =
c,
"tileerror" ===
a.type &&
b.setImgSrc(
c)}}, destroy:
function(){
if (this.layers || this.map){var
a,
b = this.layers || this.map.layers;
for (
a =
b.length - 1; 0 <=
a; --
a)this.removeLayer({layer:
b[
a]})}this.map &&
1308 this.map.events.un({addlayer:this.addLayer, removeLayer:this.removeLayer, scope:
this});
OpenLayers.Control.prototype.destroy.apply(
this, arguments)}, CLASS_NAME:
"OpenLayers.Control.CacheRead"});
OpenLayers.Protocol.WFS.v1_0_0 =
OpenLayers.Class(
OpenLayers.Protocol.WFS.v1, {
version:
"1.0.0", CLASS_NAME:
"OpenLayers.Protocol.WFS.v1_0_0"});
OpenLayers.Format.WMSGetFeatureInfo =
OpenLayers.Class(
OpenLayers.Format.XML, {layerIdentifier:
"_layer", featureIdentifier:
"_feature", regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, gmlFormat:
null, read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); var b = a.documentElement; if (b){var c = this[
"read_" + b.nodeName]; a = c?c.call(this, b):(new OpenLayers.Format.GML(this.options?this.options:{})).read(a)}
return a}, read_msGMLOutput:
function(
a){var
b =
1309[];
if (
a = this.getSiblingNodesByTagCriteria(
a, this.layerIdentifier))
for (var
c = 0,
d =
a.length;
c <
d; ++
c){var
e =
a[
c],
f =
e.nodeName;
e.prefix && (
f =
f.split(
":")[1]);
f =
f.replace(this.layerIdentifier,
"");
if (
e = this.getSiblingNodesByTagCriteria(
e, this.featureIdentifier))
for (var
g = 0;
g <
e.length;
g++){var
h =
e[
g],
k = this.parseGeometry(
h),
h = this.parseAttributes(
h),
h =
new OpenLayers.Feature.Vector(
k.geometry,
h,
null);
h.bounds =
k.bounds;
h.type =
f;
b.push(
h)}}
return b}, read_FeatureInfoResponse:
function(
a){var
b = [];
a = this.getElementsByTagNameNS(
a,
1310 "*",
"FIELDS");
for (var
c = 0,
d =
a.length;
c <
d;
c++){var
e =
a[
c],
f = {},
g,
h =
e.attributes.length;
if (0 <
h)
for (
g = 0;
g <
h;
g++){var
k =
e.attributes[
g];
f[
k.nodeName] =
k.nodeValue}
else for (
e =
e.childNodes,
g = 0,
h =
e.length;
g <
h; ++
g)
k =
e[
g], 3 !=
k.nodeType && (
f[
k.getAttribute(
"name")] =
k.getAttribute(
"value"));
b.push(
new OpenLayers.Feature.Vector(
null,
f,
null))}
return b}, getSiblingNodesByTagCriteria:
function(
a,
b){var
c = [],
d,
e,
f,
g;
if (
a &&
a.hasChildNodes()){
d =
a.childNodes;
f =
d.length;
for (var
h = 0;
h <
f;
h++){
for (
g =
d[
h];
g && 1 !=
g.nodeType; )
g =
1311 g.nextSibling,
h++;
e =
g?
g.nodeName:
""; 0 <
e.length && - 1 <
e.indexOf(
b)?
c.push(
g):(
e = this.getSiblingNodesByTagCriteria(
g,
b), 0 <
e.length && (0 ==
c.length?
c =
e:
c.push(
e)))}}
return c}, parseAttributes:
function(
a){var
b = {};
if (1 ==
a.nodeType){
a =
a.childNodes;
for (var
c =
a.length,
d = 0;
d <
c; ++
d){var
e =
a[
d];
if (1 ==
e.nodeType){var
f =
e.childNodes,
e =
e.prefix?
e.nodeName.split(
":")[1]:
e.nodeName; 0 ==
f.length?
b[
e] =
null:1 ==
f.length && (
f =
f[0], 3 ==
f.nodeType || 4 ==
f.nodeType) && (
f =
f.nodeValue.replace(
this.regExes.trimSpace,
""),
b[
e] =
f)}}}
return b},
1312 parseGeometry:
function(
a){this.gmlFormat || (this.gmlFormat =
new OpenLayers.Format.GML);
a = this.gmlFormat.parseFeature(
a); var
b,
c =
null;
a && (
b =
a.geometry &&
a.geometry.clone(),
c =
a.bounds &&
a.bounds.clone(),
a.destroy());
return{geometry:
b, bounds:
c}}, CLASS_NAME:
"OpenLayers.Format.WMSGetFeatureInfo"});
OpenLayers.Control.WMTSGetFeatureInfo =
OpenLayers.Class(
OpenLayers.Control, {hover:!1, requestEncoding:
"KVP", drillDown:!1, maxFeatures:10, clickCallback:
"click", layers:null, queryVisible:!0, infoFormat:
"text/html", vendorParams:{}, format:
null, formatOptions:
null, handler:
null, hoverRequest:
null, pending:0, initialize:
function(
a){a = a || {};
a.handlerOptions =
a.handlerOptions || {};
OpenLayers.Control.prototype.initialize.apply(
this, [
a]);
this.format || (
this.format =
new OpenLayers.Format.WMSGetFeatureInfo(
a.formatOptions));
1313 !0 ===
this.drillDown && (
this.hover = !1);
this.hover?
this.handler =
new OpenLayers.Handler.Hover(
this, {move:this.cancelHover, pause:this.getInfoForHover},
OpenLayers.Util.extend(
this.handlerOptions.hover || {}, {delay:250})):(
a = {},
a[
this.clickCallback] =
this.getInfoForClick,
this.handler =
new OpenLayers.Handler.Click(
this,
a,
this.handlerOptions.click || {}))}, getInfoForClick:
function(
a){this.request(
a.xy, {})}, getInfoForHover:
function(
a){this.request(
a.xy, {hover:!0})}, cancelHover:
function(){this.hoverRequest && (--this.pending,
1314 0 >= this.pending && (
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olCursorWait"),
this.pending = 0),
this.hoverRequest.abort(),
this.hoverRequest =
null)}, findLayers:
function(){
for (var
a = this.layers || this.map.layers,
b = [],
c,
d =
a.length - 1; 0 <=
d && (
c =
a[
d], !(
c instanceof
OpenLayers.Layer.WMTS) || (
c.requestEncoding !==
this.requestEncoding ||
this.queryVisible && !
c.getVisibility()) || (
b.push(
c),
this.drillDown && !
this.hover)); --
d);
return b}, buildRequestOptions:
function(
a,
b){var
c = this.map.getLonLatFromPixel(
b),
d =
a.getURL(
new OpenLayers.Bounds(
c.lon,
1315 c.lat,
c.lon,
c.lat)),
d =
OpenLayers.Util.getParameters(
d),
c =
a.getTileInfo(
c);
OpenLayers.Util.extend(
d, {service:
"WMTS",
version:
a.version, request:
"GetFeatureInfo", infoFormat:this.infoFormat,
i:
c.i,
j:
c.j});
OpenLayers.Util.applyDefaults(
d, this.vendorParams);
return{url:
OpenLayers.Util.isArray(
a.url)?
a.url[0]:
a.url, params:
OpenLayers.Util.upperCaseObject(
d), callback:
function(
c){this.handleResponse(
b,
c,
a)}, scope:
this}}, request:
function(
a,
b){
b =
b || {}; var
c = this.findLayers();
if (0 <
c.length){
for (var
d,
e,
f = 0,
g =
c.length;
f <
1316 g;
f++)
e =
c[
f],
d = this.events.triggerEvent(
"beforegetfeatureinfo", {xy:
a, layer:
e}), !1 !==
d && (++this.pending,
d = this.buildRequestOptions(
e,
a),
d =
OpenLayers.Request.GET(
d), !0 ===
b.hover && (
this.hoverRequest =
d)); 0 < this.pending &&
OpenLayers.Element.addClass(this.map.viewPortDiv,
"olCursorWait")}}, handleResponse:
function(
a,
b,
c){--this.pending; 0 >= this.pending && (
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olCursorWait"),
this.pending = 0);
if (
b.status && (200 >
b.status || 300 <=
b.status))this.events.triggerEvent(
"exception",
1317{xy:
a, request:
b, layer:
c});
else{var
d =
b.responseXML;
d &&
d.documentElement || (
d =
b.responseText); var
e,
f;
try{
e = this.format.read(
d)}
catch (
g){
f = !0, this.events.triggerEvent(
"exception", {xy:
a, request:
b, error:
g, layer:
c})}
f || this.events.triggerEvent(
"getfeatureinfo", {text:
b.responseText, features:
e, request:
b, xy:
a, layer:
c})}}, CLASS_NAME:
"OpenLayers.Control.WMTSGetFeatureInfo"});
OpenLayers.Protocol.CSW.v2_0_2 =
OpenLayers.Class(
OpenLayers.Protocol, {formatOptions:null, initialize:function(a){OpenLayers.Protocol.prototype.initialize.apply(this, [a]); a.format || (this.format = new OpenLayers.Format.CSWGetRecords.v2_0_2(OpenLayers.Util.extend({}, this.formatOptions)))}, destroy:
function(){this.options && !this.options.format && this.format.destroy(); this.format = null; OpenLayers.Protocol.prototype.destroy.apply(this)}, read:
function(
a){a = OpenLayers.Util.extend({},
a);
OpenLayers.Util.applyDefaults(
a,
1318 this.options || {}); var
b =
new OpenLayers.Protocol.Response({requestType:
"read"}),
c = this.format.write(
a.params ||
a);
b.priv =
OpenLayers.Request.POST({url:
a.url, callback:this.createCallback(this.handleRead,
b,
a), params:
a.params, headers:
a.headers, data:
c});
return b}, handleRead:
function(
a,
b){
if (
b.callback){var
c =
a.priv; 200 <=
c.status && 300 >
c.status?(
a.data = this.parseData(
c),
a.code =
OpenLayers.Protocol.Response.SUCCESS):
a.code =
OpenLayers.
Protocol.
Response.
FAILURE;
b.callback.call(
b.scope,
a)}}, parseData:
function(
a){var
b =
1319 a.responseXML;
b &&
b.documentElement || (
b =
a.responseText);
return!
b || 0 >=
b.length?
null:this.format.read(
b)}, CLASS_NAME:
"OpenLayers.Protocol.CSW.v2_0_2"});
OpenLayers.Format.WCSCapabilities.v1_1_0 =
OpenLayers.Class(
OpenLayers.Format.WCSCapabilities.v1, {
namespaces:{wcs:
"http://www.opengis.net/wcs/1.1", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance", ows:
"http://www.opengis.net/ows/1.1"}, errorProperty:
"operationsMetadata", readers:{wcs:
OpenLayers.Util.applyDefaults({Capabilities:
function(
a,
b){this.readChildNodes(
a,
b)}, Contents:
function(
a,
b){
b.contentMetadata = []; this.readChildNodes(
a,
b.contentMetadata)}, CoverageSummary:
function(
a,
1320 b){var
c = {}; this.readChildNodes(
a,
c);
b.push(
c)}, Identifier:
function(
a,
b){
b.identifier = this.getChildValue(
a)}, Title:
function(
a,
b){
b.title = this.getChildValue(
a)}, Abstract:
function(
a,
b){
b[
"abstract"] = this.getChildValue(
a)}, SupportedCRS:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
b.supportedCRS || (
b.supportedCRS = []),
b.supportedCRS.push(
c))}, SupportedFormat:
function(
a,
b){var
c = this.getChildValue(
a);
c && (
b.supportedFormat || (
b.supportedFormat = []),
b.supportedFormat.push(
c))}},
OpenLayers.Format.WCSCapabilities.v1.prototype.readers.wcs),
1321 ows:
OpenLayers.
Format.
OWSCommon.
v1_1_0.
prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WCSCapabilities.v1_1_0"});
OpenLayers.Control.Graticule =
OpenLayers.Class(
OpenLayers.Control, {autoActivate:!0, intervals:[45, 30, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.01, 0.005, 0.002, 0.001], displayInLayerSwitcher:!0, visible:!0, numPoints:50, targetSize:200, layerName:null, labelled:!0, labelFormat:
"dm", lineSymbolizer:{strokeColor:
"#333", strokeWidth:1, strokeOpacity:0.5}, labelSymbolizer:{}, gratLayer:
null, initialize:
function(
a){a = a || {};
a.layerName =
a.layerName ||
OpenLayers.i18n(
"Graticule");
OpenLayers.Control.prototype.initialize.apply(
this, [
a]);
1322 this.labelSymbolizer.stroke = !1;
this.labelSymbolizer.fill = !1;
this.labelSymbolizer.label =
"${label}";
this.labelSymbolizer.labelAlign =
"${labelAlign}";
this.labelSymbolizer.labelXOffset =
"${xOffset}";
this.labelSymbolizer.labelYOffset =
"${yOffset}"}, destroy:
function(){this.deactivate();
OpenLayers.Control.prototype.destroy.apply(
this, arguments); this.gratLayer && (this.gratLayer.destroy(), this.gratLayer =
null)}, draw:
function(){
OpenLayers.Control.prototype.draw.apply(
this, arguments);
if (!this.gratLayer){var
a =
new OpenLayers.Style({},
1323{rules:[
new OpenLayers.Rule({symbolizer:{
Point:this.labelSymbolizer,
Line:this.lineSymbolizer}})]}); this.gratLayer =
new OpenLayers.Layer.Vector(this.layerName, {styleMap:
new OpenLayers.StyleMap({
"default":
a}), visibility:
this.visible, displayInLayerSwitcher:
this.displayInLayerSwitcher})}return
this.div}, activate:function(){
return OpenLayers.Control.prototype.activate.apply(
this, arguments)?(this.map.addLayer(
this.gratLayer),
this.map.events.register(
"moveend",
this,
this.update),
this.update(), !0):!1}, deactivate:
function(){
return OpenLayers.Control.prototype.deactivate.apply(
this,
1324 arguments)?(this.map.events.unregister(
"moveend",
this, this.
update), this.map.removeLayer(
this.gratLayer), !0):!1},
update:
function(){var
a = this.map.getExtent();
if (
a){this.gratLayer.destroyFeatures(); var
b =
new OpenLayers.Projection(
"EPSG:4326"),
c = this.map.getProjectionObject(),
d = this.map.getResolution();
c.proj &&
"longlat" ==
c.proj.projName && (this.numPoints = 1); var
e = this.map.getCenter(),
f =
new OpenLayers.Pixel(
e.lon,
e.lat);
OpenLayers.Projection.transform(
f,
c,
b);
for (var
e = this.targetSize *
d,
e =
e *
e,
g,
d = 0;
d < this.intervals.length; ++
d){
g =
1325 this.intervals[
d]; var
h =
g / 2,
k =
f.offset({
x: -
h,
y: -
h}),
h =
f.offset({x:h, y:h});
OpenLayers.Projection.transform(
k,
b,
c);
OpenLayers.Projection.transform(
h,
b,
c);
if ((
k.x -
h.x) * (
k.x -
h.x) + (
k.y -
h.y) * (
k.y -
h.y) <=
e)
break}
f.x =
Math.floor(
f.x /
g) *
g;
f.y =
Math.floor(
f.y /
g) *
g; var
d = 0,
e = [
f.clone()],
h =
f.clone(),
l;
do h =
h.offset({
x:0,
y:
g}),
l =
OpenLayers.Projection.transform(
h.clone(),
b,
c),
e.unshift(
h);
while (
a.containsPixel(
l) && 1E3 > ++
d);
h =
f.clone();
do h =
h.offset({
x:0,
y: -
g}),
l =
OpenLayers.Projection.transform(
h.clone(),
b,
c),
e.push(
h);
1326 while (
a.containsPixel(
l) && 1E3 > ++
d);
d = 0;
k = [
f.clone()];
h =
f.clone();
do h =
h.offset({
x: -
g,
y:0}),
l =
OpenLayers.Projection.transform(
h.clone(),
b,
c),
k.unshift(
h);
while (
a.containsPixel(
l) && 1E3 > ++
d);
h =
f.clone();
do h =
h.offset({
x:
g,
y:0}),
l =
OpenLayers.Projection.transform(
h.clone(),
b,
c),
k.push(
h);
while (
a.containsPixel(
l) && 1E3 > ++
d);
g = [];
for (
d = 0;
d <
k.length; ++
d){
l =
k[
d].x;
for (var
f = [],
m =
null,
n =
Math.min(
e[0].y, 90),
h =
Math.max(
e[
e.length - 1].y, - 90),
p = (
n -
h) /
this.numPoints,
n =
h,
h = 0;
h <=
this.numPoints; ++
h){var
q =
new OpenLayers.Geometry.Point(
l,
1327 n);
q.transform(
b,
c);
f.push(
q);
n +=
p;
q.y >=
a.bottom && !
m && (
m =
q)}this.labelled && (
m =
new OpenLayers.Geometry.Point(
m.x,
a.bottom),
l = {value:l, label:this.labelled?OpenLayers.Util.getFormattedLonLat(l,
"lon", this.labelFormat):
"", labelAlign:
"cb", xOffset:0, yOffset:2},
this.gratLayer.addFeatures(
new OpenLayers.Feature.Vector(
m,
l)));
f =
new OpenLayers.Geometry.LineString(
f);
g.push(
new OpenLayers.Feature.Vector(
f))}
for (
h = 0;
h <
e.length; ++
h)
if (
n =
e[
h].
y, !( - 90 >
n || 90 <
n)){
f = [];
d =
k[0].x;
p = (
k[
k.length - 1].x -
d) / this.numPoints;
1328 l =
d;
m =
null;
for (
d = 0;
d <= this.numPoints; ++
d)
q =
new OpenLayers.Geometry.Point(
l,
n),
q.transform(
b,
c),
f.push(
q),
l +=
p,
q.x <
a.right && (
m =
q); this.labelled && (
m =
new OpenLayers.Geometry.Point(
a.right,
m.y),
l = {value:n, label:this.labelled?OpenLayers.Util.getFormattedLonLat(n,
"lat", this.labelFormat):
"", labelAlign:
"rb", xOffset: - 2, yOffset:2},
this.gratLayer.addFeatures(
new OpenLayers.Feature.Vector(
m,
l)));
f =
new OpenLayers.Geometry.LineString(
f);
g.push(
new OpenLayers.Feature.Vector(
f))}this.gratLayer.addFeatures(
g)}}, CLASS_NAME:
"OpenLayers.Control.Graticule"});
OpenLayers.Console.warn(
"OpenLayers.Rico is deprecated");
OpenLayers.Rico =
OpenLayers.Rico || {};
1329 OpenLayers.Rico.Corner = {
round:
function(
a,
b){
a =
OpenLayers.Util.getElement(
a); this._setOptions(
b); var
c = this.options.color;
"fromElement" == this.options.color && (
c = this._background(
a)); var
d = this.options.bgColor;
"fromParent" == this.options.bgColor && (
d = this._background(
a.offsetParent)); this._roundCornersImpl(
a,
c,
d)}, changeColor:
function(
a,
b){
a.style.backgroundColor =
b;
for (var
c =
a.parentNode.getElementsByTagName(
"span"),
d = 0;
d <
c.length;
d++)
c[
d].style.backgroundColor =
b}, changeOpacity:
function(
a,
b){var
c =
"alpha(opacity=" +
1330 100 *
b +
")";
a.style.opacity =
b;
a.style.filter =
c;
for (var
d =
a.parentNode.getElementsByTagName(
"span"),
e = 0;
e <
d.length;
e++)
d[
e].style.opacity =
b,
d[
e].style.filter =
c}, reRound:
function(
a,
b){var
c =
a.parentNode.childNodes[2];
a.parentNode.removeChild(
a.parentNode.childNodes[0]);
a.parentNode.removeChild(
c); this.
round(a.parentNode,
b)}, _roundCornersImpl:
function(
a,
b,
c){this.options.border && this._renderBorder(
a,
c); this._isTopRounded() && this._roundTopCorners(
a,
b,
c); this._isBottomRounded() && this._roundBottomCorners(
a,
1331 b,
c)}, _renderBorder:
function(
a,
b){var
c =
"1px solid " + this._borderColor(
b);
a.innerHTML =
"<div " + (
"style='border-left: " +
c +
";" + (
"border-right: " +
c) +
"'") +
">" +
a.innerHTML +
"</div>"}, _roundTopCorners:
function(
a,
b,
c){
for (var
d = this._createCorner(
c),
e = 0;
e < this.options.numSlices;
e++)
d.appendChild(
this._createCornerSlice(
b,
c,
e,
"top"));
a.style.paddingTop = 0;
a.insertBefore(
d,
a.firstChild)}, _roundBottomCorners:
function(
a,
b,
c){
for (var
d = this._createCorner(
c),
e = this.options.numSlices - 1; 0 <=
e;
e--)
d.appendChild(this._createCornerSlice(
b,
1332 c,
e,
"bottom"));
a.style.paddingBottom = 0;
a.appendChild(
d)}, _createCorner:
function(
a){var
b =
document.createElement(
"div");
b.style.backgroundColor = this._isTransparent()?
"transparent":
a;
return b}, _createCornerSlice:
function(
a,
b,
c,
d){var
e =
document.createElement(
"span"),
f =
e.style;
f.backgroundColor =
a;
f.display =
"block";
f.height =
"1px";
f.overflow =
"hidden";
f.fontSize =
"1px";
a = this._borderColor(
a,
b); this.options.border && 0 ==
c?(
f.borderTopStyle =
"solid",
f.borderTopWidth =
"1px",
f.borderLeftWidth =
"0px",
f.borderRightWidth =
1333 "0px",
f.borderBottomWidth =
"0px",
f.height =
"0px",
f.borderColor =
a):
a && (
f.borderColor =
a,
f.borderStyle =
"solid",
f.borderWidth =
"0px 1px"); this.options.compact ||
c != this.options.numSlices - 1 || (
f.height =
"2px"); this._setMargin(
e,
c,
d); this._setBorder(
e,
c,
d);
return e}, _setOptions:
function(
a){this.options = {corners:
"all", color:
"fromElement", bgColor:
"fromParent", blend:!0, border:!1, compact:!1};
OpenLayers.Util.extend(this.options,
a || {}); this.options.numSlices = this.options.compact?2:4; this._isTransparent() && (this.options.blend =
1334 !1)}, _whichSideTop:
function(){
return this._hasString(this.options.corners,
"all",
"top") || 0 <= this.options.corners.indexOf(
"tl") && 0 <= this.options.corners.indexOf(
"tr")?
"":0 <= this.options.corners.indexOf(
"tl")?
"left":0 <= this.options.corners.indexOf(
"tr")?
"right":
""}, _whichSideBottom:
function(){
return this._hasString(this.options.corners,
"all",
"bottom") || 0 <= this.options.corners.indexOf(
"bl") && 0 <= this.options.corners.indexOf(
"br")?
"":0 <= this.options.corners.indexOf(
"bl")?
"left":0 <= this.options.corners.indexOf(
"br")?
1335 "right":
""}, _borderColor:
function(
a,
b){
return"transparent" ==
a?
b:this.options.border?this.options.border:this.options.blend?this._blend(
b,
a):
""}, _setMargin:function(
a,
b,
c){
b = this._marginSize(
b);
c =
"top" ==
c?this._whichSideTop():
this._whichSideBottom();
"left" ==
c?(
a.style.marginLeft =
b +
"px",
a.style.marginRight =
"0px"):
"right" ==
c?(
a.style.marginRight =
b +
"px",
a.style.marginLeft =
"0px"):(
a.style.marginLeft =
b +
"px",
a.style.marginRight =
b +
"px")}, _setBorder:
function(
a,
b,
c){
b = this._borderSize(
b);
c =
"top" ==
c?this._whichSideTop():
1336 this._whichSideBottom();
"left" ==
c?(
a.style.borderLeftWidth =
b +
"px",
a.style.borderRightWidth =
"0px"):
"right" ==
c?(
a.style.borderRightWidth =
b +
"px",
a.style.borderLeftWidth =
"0px"):(
a.style.borderLeftWidth =
b +
"px",
a.style.borderRightWidth =
b +
"px"); !1 != this.options.border && (
a.style.borderLeftWidth =
b +
"px",
a.style.borderRightWidth =
b +
"px")}, _marginSize:
function(
a){
if (this._isTransparent())
return 0; var
b = [5, 3, 2, 1],
c = [3, 2, 1, 0],
d = [2, 1],
e = [1, 0];
return this.options.compact && this.options.blend?
e[
a]:this.options.compact?
1337 d[
a]:this.options.blend?
c[
a]:
b[
a]}, _borderSize:
function(
a){var
b = [5, 3, 2, 1],
c = [2, 1, 1, 1],
d = [1, 0],
e = [0, 2, 0, 0];
return this.options.compact && (this.options.blend || this._isTransparent())?1:
this.options.compact?
d[
a]:
this.options.blend?
c[
a]:
this.options.border?
e[
a]:
this._isTransparent()?
b[
a]:0}, _hasString:function(
a){
for (var
b = 1;
b < arguments.length;
b++)
if (0 <=
a.indexOf(arguments[
b]))
return!0;
return!1}, _blend:
function(
a,
b){var
c =
OpenLayers.Rico.Color.createFromHex(
a);
c.blend(
OpenLayers.Rico.Color.createFromHex(
b));
1338 return c}, _background:
function(
a){
try{
return OpenLayers.Rico.Color.createColorFromBackground(
a).asHex()}
catch (
b){
return"#ffffff"}}, _isTransparent:
function(){
return"transparent" == this.options.color}, _isTopRounded:
function(){
return this._hasString(this.options.corners,
"all",
"top",
"tl",
"tr")}, _isBottomRounded:
function(){
return this._hasString(this.options.corners,
"all",
"bottom",
"bl",
"br")}, _hasSingleTextChild:
function(
a){
return 1 ==
a.childNodes.length && 3 ==
a.childNodes[0].nodeType}};
OpenLayers.Control.NavigationHistory =
OpenLayers.Class(
OpenLayers.Control, {type:OpenLayers.Control.TYPE_TOGGLE, previous:null, previousOptions:null, next:null, nextOptions:null, limit:50, autoActivate:!0, clearOnDeactivate:!1, registry:null, nextStack:null, previousStack:null, listeners:null, restoring:!1, initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this, [a]); this.registry = OpenLayers.Util.extend({moveend:this.getState}, this.registry); a = {trigger:OpenLayers.Function.bind(this.previousTrigger,
1339 this), displayClass:this.displayClass +
" " + this.displayClass +
"Previous"}; OpenLayers.Util.extend(a, this.previousOptions); this.previous = new OpenLayers.Control.Button(a); a = {trigger:OpenLayers.Function.bind(this.nextTrigger, this), displayClass:this.displayClass +
" " + this.displayClass +
"Next"}; OpenLayers.Util.extend(a, this.nextOptions); this.next = new OpenLayers.Control.Button(a); this.clear()}, onPreviousChange:
function(
a,
b){a && !this.previous.active?this.previous.activate():!a && this.previous.active && this.previous.deactivate()},
1340 onNextChange:
function(
a,
b){a && !this.next.active?this.next.activate():!a && this.next.active && this.next.deactivate()}, destroy:
function(){OpenLayers.Control.prototype.destroy.apply(this); this.previous.destroy(); this.next.destroy(); this.deactivate(); for (var a in this)this[a] = null}, setMap:
function(
a){this.map = a; this.next.setMap(a); this.previous.setMap(a)}, draw:
function(){OpenLayers.Control.prototype.draw.apply(this, arguments); this.next.draw(); this.previous.draw()}, previousTrigger:
function(){var a = this.previousStack.shift(),
1341 b = this.previousStack.shift(); void 0 != b?(this.nextStack.unshift(a), this.previousStack.unshift(b), this.restoring = !0, this.restore(b), this.restoring = !1, this.onNextChange(this.nextStack[0], this.nextStack.length), this.onPreviousChange(this.previousStack[1], this.previousStack.length - 1)):this.previousStack.unshift(a); return b}, nextTrigger:
function(){var a = this.nextStack.shift(); void 0 != a && (this.previousStack.unshift(a), this.restoring = !0, this.restore(a), this.restoring = !1, this.onNextChange(this.nextStack[0],
1342 this.nextStack.length), this.onPreviousChange(this.previousStack[1], this.previousStack.length - 1)); return a}, clear:
function(){this.previousStack = []; this.previous.deactivate(); this.nextStack = []; this.next.deactivate()}, getState:
function(){return{center:this.map.getCenter(), resolution:this.map.getResolution(), projection:this.map.getProjectionObject(), units:this.map.getProjectionObject().getUnits() || this.map.units || this.map.baseLayer.units}}, restore:
function(
a){var
b,
c;
if (this.map.getProjectionObject() ==
1343 a.projection)
c = this.map.getZoomForResolution(
a.resolution),
b =
a.center;
else{
b =
a.center.clone();
b.transform(
a.projection,
this.map.getProjectionObject());
c =
a.units; var
d = this.map.getProjectionObject().getUnits() || this.map.units || this.map.baseLayer.units;
c = this.map.getZoomForResolution((
c &&
d?
OpenLayers.INCHES_PER_UNIT[
c] /
OpenLayers.INCHES_PER_UNIT[
d]:1) *
a.resolution)}this.map.setCenter(
b,
c)}, setListeners:
function(){this.listeners = {};
for (var
a in this.registry)this.listeners[
a] =
OpenLayers.Function.bind(
function(){
if (!this.restoring){var
b =
1344 this.registry[
a].apply(
this, arguments); this.previousStack.unshift(
b);
if (1 < this.previousStack.length)this.onPreviousChange(this.previousStack[1], this.previousStack.length - 1); this.previousStack.length > this.limit + 1 && this.previousStack.pop(); 0 < this.nextStack.length && (this.nextStack = [], this.onNextChange(
null, 0))}
return!0},
this)}, activate:
function(){var
a = !1;
if (this.map &&
OpenLayers.Control.prototype.activate.apply(
this)){
null == this.listeners && this.setListeners();
for (var
b in this.listeners)this.map.events.register(
b,
1345 this, this.listeners[
b]);
a = !0; 0 == this.previousStack.length && this.initStack()}
return a}, initStack:
function(){this.map.getCenter() && this.listeners.moveend()}, deactivate:
function(){var
a = !1;
if (this.map &&
OpenLayers.Control.prototype.deactivate.apply(
this)){
for (var
b in this.listeners)this.map.events.unregister(
b,
this, this.listeners[
b]); this.clearOnDeactivate && this.clear();
a = !0}
return a}, CLASS_NAME:
"OpenLayers.Control.NavigationHistory"});
OpenLayers.Layer.UTFGrid =
OpenLayers.Class(
OpenLayers.Layer.XYZ, {isBaseLayer:!1, projection:new OpenLayers.Projection(
"EPSG:900913"), useJSONP:!1, tileClass:OpenLayers.Tile.UTFGrid, initialize:function(a){OpenLayers.Layer.Grid.prototype.initialize.apply(this, [a.name, a.url, {}, a]); this.tileOptions = OpenLayers.Util.extend({utfgridResolution:this.utfgridResolution}, this.tileOptions)}, createBackBuffer:
function(){},
clone:
function(
a){null == a && (a = new OpenLayers.Layer.UTFGrid(this.getOptions())); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this,
1346 [a])}, getFeatureInfo:
function(
a){var b = null; (a = this.getTileData(a)) && a.tile && (b = a.tile.getFeatureInfo(a.i, a.j)); return b}, getFeatureId:
function(
a){var b = null; a = this.getTileData(a); a.tile && (b = a.tile.getFeatureId(a.i, a.j)); return b}, CLASS_NAME:
"OpenLayers.Layer.UTFGrid"});
OpenLayers.TileManager =
OpenLayers.Class({cacheSize:256, tilesPerFrame:2, frameDelay:16, moveDelay:100, zoomDelay:200,
maps:
null, tileQueueId:
null, tileQueue:
null, tileCache:
null, tileCacheIndex:
null, initialize:
function(
a){
OpenLayers.Util.extend(
this,
a); this.
maps = []; this.tileQueueId = {}; this.tileQueue = {}; this.tileCache = {}; this.tileCacheIndex = []}, addMap:
function(
a){
if (!this._destroyed &&
OpenLayers.Layer.Grid){this.
maps.push(
a); this.tileQueue[
a.id] = [];
for (var
b = 0,
c =
a.layers.length;
b <
c; ++
b)this.addLayer({layer:
a.layers[
b]});
1347 a.events.on({move:this.move, zoomend:this.zoomEnd, changelayer:this.changeLayer, addlayer:this.addLayer, preremovelayer:this.removeLayer, scope:
this})}}, removeMap:
function(
a){
if (!this._destroyed &&
OpenLayers.Layer.Grid){window.clearTimeout(this.tileQueueId[
a.id]);
if (
a.layers)
for (var
b = 0,
c =
a.layers.length;
b <
c; ++
b)this.removeLayer({layer:
a.layers[
b]});
a.events &&
a.events.un({move:this.move, zoomend:this.zoomEnd, changelayer:this.changeLayer, addlayer:this.addLayer, preremovelayer:this.removeLayer, scope:
this});
1348 delete this.tileQueue[
a.id];
delete this.tileQueueId[
a.id];
OpenLayers.Util.removeItem(this.
maps,
a)}}, move:
function(
a){this.updateTimeout(
a.object,
this.moveDelay, !0)}, zoomEnd:
function(
a){this.updateTimeout(
a.object,
this.zoomDelay)}, changeLayer:
function(
a){
"visibility" !==
a.property &&
"params" !==
a.property || this.updateTimeout(
a.object, 0)}, addLayer:
function(
a){
a =
a.layer;
if (
a instanceof
OpenLayers.Layer.Grid){
a.events.on({addtile:this.addTile, retile:this.clearTileQueue, scope:
this}); var
b,
c,
d;
for (
b =
a.grid.length -
1349 1; 0 <=
b; --
b)
for (
c =
a.grid[
b].length - 1; 0 <=
c; --
c)
d =
a.grid[
b][
c], this.addTile({tile:
d}),
d.url && !
d.imgDiv &&
this.manageTileCache({object:d})}}, removeLayer:
function(
a){
a =
a.layer;
if (
a instanceof
OpenLayers.Layer.Grid && (
this.clearTileQueue({object:a}),
a.events &&
a.events.un({addtile:this.addTile, retile:this.clearTileQueue, scope:this}),
a.grid)){var
b,
c,
d;
for (
b =
a.grid.length - 1; 0 <=
b; --
b)
for (
c =
a.grid[
b].length - 1; 0 <=
c; --
c)
d =
a.grid[
b][
c], this.unloadTile({
object:
d})}}, updateTimeout:
function(
a,
b,
c){window.clearTimeout(this.tileQueueId[
a.id]);
1350 var
d = this.tileQueue[
a.id];
if (!
c ||
d.length)this.tileQueueId[
a.id] = window.setTimeout(
OpenLayers.Function.bind(
function(){this.drawTilesFromQueue(a); d.length && this.updateTimeout(a, this.frameDelay)},
this),
b)}, addTile:
function(
a){
if (
a.tile instanceof
OpenLayers.Tile.Image)
a.tile.events.on({beforedraw:this.queueTileDraw, beforeload:this.manageTileCache, loadend:this.addToCache, unload:this.unloadTile, scope:
this});
else this.removeLayer({layer:
a.tile.layer})}, unloadTile:
function(
a){
a =
a.object;
a.events.un({beforedraw:this.queueTileDraw,
1351 beforeload:this.manageTileCache, loadend:this.addToCache, unload:this.unloadTile, scope:
this});
OpenLayers.Util.removeItem(this.tileQueue[
a.layer.map.id],
a)}, queueTileDraw:
function(
a){
a =
a.object; var
b = !1,
c =
a.layer,
d =
c.getURL(
a.bounds),
e = this.tileCache[
d];
e &&
"olTileImage" !==
e.className && (
delete this.tileCache[
d],
OpenLayers.Util.removeItem(this.tileCacheIndex,
d),
e =
null); !
c.url || !
c.async &&
e || (
b = this.tileQueue[
c.map.id],
~OpenLayers.Util.indexOf(
b,
a) ||
b.push(
a),
b = !0);
return!
b}, drawTilesFromQueue:
function(
a){var
b =
1352 this.tileQueue[
a.id],
c = this.tilesPerFrame;
for (
a =
a.zoomTween &&
a.zoomTween.playing; !
a &&
b.length &&
c; )
b.shift().draw(!0), --
c}, manageTileCache:
function(
a){
a =
a.object; var
b = this.tileCache[
a.url];
b && (
b.parentNode &&
OpenLayers.Element.hasClass(
b.parentNode,
"olBackBuffer") && (
b.parentNode.removeChild(
b),
b.id =
null),
b.parentNode || (
b.style.visibility =
"hidden",
b.style.opacity = 0,
a.setImage(
b),
OpenLayers.Util.removeItem(
this.tileCacheIndex,
a.url),
this.tileCacheIndex.push(
a.url)))}, addToCache:
function(
a){
a =
a.object;
1353 this.tileCache[
a.url] ||
OpenLayers.Element.hasClass(
a.imgDiv,
"olImageLoadError") || (this.tileCacheIndex.length >= this.cacheSize && (
delete this.tileCache[this.tileCacheIndex[0]], this.tileCacheIndex.shift()), this.tileCache[
a.url] =
a.imgDiv,
this.tileCacheIndex.push(
a.url))}, clearTileQueue:
function(
a){
a =
a.object;
for (var
b = this.tileQueue[
a.map.id],
c =
b.length - 1; 0 <=
c; --
c)
b[
c].layer ===
a &&
b.splice(
c, 1)}, destroy:
function(){
for (var
a = this.
maps.length - 1; 0 <=
a; --
a)this.removeMap(this.
maps[
a]); this.tileCacheIndex = this.tileCache =
1354 this.tileQueueId = this.tileQueue = this.
maps =
null; this._destroyed = !0}});
OpenLayers.Layer.ArcGISCache =
OpenLayers.Class(
OpenLayers.Layer.XYZ, {url:null, tileOrigin:null, tileSize:new OpenLayers.Size(256, 256), useArcGISServer:!0, type:
"png", useScales:!1, overrideDPI:!1, initialize:function(a, b, c){OpenLayers.Layer.XYZ.prototype.initialize.apply(this, arguments); this.resolutions && (this.serverResolutions = this.resolutions, this.maxExtent = this.getMaxExtentForResolution(this.resolutions[0])); if (this.layerInfo){var d = this.layerInfo, e = new OpenLayers.Bounds(d.fullExtent.xmin, d.fullExtent.ymin,
1355 d.fullExtent.xmax, d.fullExtent.ymax); this.projection =
"EPSG:" + d.spatialReference.wkid; this.sphericalMercator = 102100 == d.spatialReference.wkid; this.units =
"esriFeet" == d.units?
"ft":
"m"; if (d.tileInfo){this.tileSize = new OpenLayers.Size(d.tileInfo.width || d.tileInfo.cols, d.tileInfo.height || d.tileInfo.rows); this.tileOrigin = new OpenLayers.LonLat(d.tileInfo.origin.x, d.tileInfo.origin.y); var f = new OpenLayers.Geometry.Point(e.left, e.top), e = new OpenLayers.Geometry.Point(e.right, e.bottom); this.useScales?this.scales =
1356[]:this.resolutions = []; this.lods = []; for (var g in d.tileInfo.lods)if (d.tileInfo.lods.hasOwnProperty(g)){var h = d.tileInfo.lods[g]; this.useScales?this.scales.push(h.scale):this.resolutions.push(h.resolution); var k = this.getContainingTileCoords(f, h.resolution); h.startTileCol = k.x; h.startTileRow = k.y; k = this.getContainingTileCoords(e, h.resolution); h.endTileCol = k.x; h.endTileRow = k.y; this.lods.push(h)}this.maxExtent = this.calculateMaxExtentWithLOD(this.lods[0]); this.serverResolutions = this.resolutions; this.overrideDPI &&
1357 d.tileInfo.dpi && (OpenLayers.DOTS_PER_INCH = d.tileInfo.dpi)}}}, getContainingTileCoords:
function(
a,
b){return new OpenLayers.Pixel(Math.max(Math.floor((a.x - this.tileOrigin.lon) / (this.tileSize.w * b)), 0), Math.max(Math.floor((this.tileOrigin.lat - a.y) / (this.tileSize.h * b)), 0))}, calculateMaxExtentWithLOD:
function(
a){var b = this.tileOrigin.lon + a.startTileCol * this.tileSize.w * a.resolution, c = this.tileOrigin.lat - a.startTileRow * this.tileSize.h * a.resolution; return new OpenLayers.Bounds(b, c - (a.endTileRow - a.startTileRow +
1358 1) * this.tileSize.h * a.resolution, b + (a.endTileCol - a.startTileCol + 1) * this.tileSize.w * a.resolution, c)}, calculateMaxExtentWithExtent:
function(
a,
b){var c = new OpenLayers.Geometry.Point(a.left, a.top), d = new OpenLayers.Geometry.Point(a.right, a.bottom), c = this.getContainingTileCoords(c, b), d = this.getContainingTileCoords(d, b); return this.calculateMaxExtentWithLOD({resolution:b, startTileCol:c.x, startTileRow:c.y, endTileCol:d.x, endTileRow:d.y})}, getUpperLeftTileCoord:
function(
a){var
b =
new OpenLayers.Geometry.Point(this.maxExtent.left,
1359 this.maxExtent.top);
return this.getContainingTileCoords(
b,
a)}, getLowerRightTileCoord:
function(
a){var
b =
new OpenLayers.Geometry.Point(this.maxExtent.right,
this.maxExtent.bottom);
return this.getContainingTileCoords(
b,
a)}, getMaxExtentForResolution:
function(
a){var
b = this.getUpperLeftTileCoord(
a),
c = this.getLowerRightTileCoord(
a),
d = this.tileOrigin.lon +
b.x * this.tileSize.w *
a,
e = this.tileOrigin.lat -
b.y * this.tileSize.h *
a;
return new OpenLayers.Bounds(
d,
e - (
c.y -
b.y + 1) *
this.tileSize.h *
a,
d + (
c.x -
b.x + 1) *
this.tileSize.w *
1360 a,
e)},
clone:
function(
a){
null ==
a && (
a =
new OpenLayers.Layer.ArcGISCache(this.name, this.url, this.options));
return OpenLayers.Layer.XYZ.prototype.clone.apply(
this, [
a])}, initGriddedTiles:
function(
a){
delete this._tileOrigin;
OpenLayers.Layer.XYZ.prototype.initGriddedTiles.apply(
this, arguments)}, getMaxExtent:
function(){var
a = this.map.getResolution();
return this.maxExtent = this.getMaxExtentForResolution(
a)}, getTileOrigin:
function(){
if (!this._tileOrigin){var
a = this.getMaxExtent(); this._tileOrigin =
new OpenLayers.LonLat(
a.left,
1361 a.bottom)}
return this._tileOrigin}, getURL:
function(
a){var
b = this.getResolution(),
c = this.tileOrigin.lon +
b * this.tileSize.w / 2,
d = this.tileOrigin.lat -
b * this.tileSize.h / 2;
a =
a.getCenterLonLat();
c =
Math.round(
Math.abs((
a.lon -
c) / (
b *
this.tileSize.w)));
d =
Math.round(
Math.abs((
d -
a.lat) / (
b *
this.tileSize.h)));
a = this.map.getZoom();
if (this.lods){
if (
b = this.lods[this.map.getZoom()],
c < b.startTileCol || c > b.endTileCol ||
d < b.startTileRow || d > b.endTileRow)
return null}
else{var
e = this.getUpperLeftTileCoord(
b),
b = this.getLowerRightTileCoord(
b);
1362 if (
c < e.x || c >=
b.x ||
d < e.y || d >=
b.y)
return null}
b = this.url;
e =
"" +
c +
d +
a;
OpenLayers.Util.isArray(
b) && (
b = this.selectUrl(
e,
b)); this.useArcGISServer?
b +=
"/tile/${z}/${y}/${x}":(
c =
"C" +
OpenLayers.Number.zeroPad(
c, 8, 16),
d =
"R" +
OpenLayers.Number.zeroPad(
d, 8, 16),
a =
"L" +
OpenLayers.Number.zeroPad(
a, 2, 10),
b =
b +
"/${z}/${y}/${x}." +
this.type);
b =
OpenLayers.String.format(
b, {
x:
c,
y:
d,
z:
a});
return OpenLayers.Util.urlAppend(
b,
OpenLayers.Util.getParameterString(
this.params))}, CLASS_NAME:
"OpenLayers.Layer.ArcGISCache"});
OpenLayers.Control.WMSGetFeatureInfo =
OpenLayers.Class(
OpenLayers.Control, {hover:!1, drillDown:!1, maxFeatures:10, clickCallback:
"click", output:
"features", layers:null, queryVisible:!1, url:null, layerUrls:null, infoFormat:
"text/html", vendorParams:{}, format:
null, formatOptions:
null, handler:
null, hoverRequest:
null, initialize:
function(
a){
a =
a || {};
a.handlerOptions =
a.handlerOptions || {};
OpenLayers.Control.prototype.initialize.apply(
this, [
a]); this.format || (this.format =
new OpenLayers.Format.WMSGetFeatureInfo(
a.formatOptions));
1363 !0 === this.drillDown && (this.hover = !1); this.hover?this.handler =
new OpenLayers.Handler.Hover(
this, {move:this.cancelHover, pause:this.getInfoForHover},
OpenLayers.Util.extend(this.handlerOptions.hover || {}, {delay:250})):(
a = {},
a[this.clickCallback] = this.getInfoForClick, this.handler =
new OpenLayers.Handler.Click(
this,
a, this.handlerOptions.click || {}))}, getInfoForClick:
function(
a){this.events.triggerEvent(
"beforegetfeatureinfo", {xy:
a.xy});
OpenLayers.Element.addClass(this.map.viewPortDiv,
"olCursorWait"); this.request(
a.xy,
1364{})}, getInfoForHover:
function(
a){this.events.triggerEvent(
"beforegetfeatureinfo", {xy:
a.xy}); this.request(
a.xy, {hover:!0})}, cancelHover:
function(){this.hoverRequest && (this.hoverRequest.abort(), this.hoverRequest =
null)}, findLayers:
function(){
for (var
a = this.layers || this.map.layers,
b = [],
c,
d,
e =
a.length - 1; 0 <=
e; --
e)
c =
a[
e],
c instanceof
OpenLayers.Layer.WMS && (!this.queryVisible ||
c.getVisibility()) && (
d =
OpenLayers.Util.isArray(
c.url)?
c.url[0]:
c.url, !1 !==
this.drillDown ||
this.url || (
this.url =
d), (!0 ===
this.drillDown ||
1365 this.urlMatches(
d)) &&
b.push(
c));
return b}, urlMatches:
function(
a){var
b =
OpenLayers.Util.isEquivalentUrl(this.url,
a);
if (!
b && this.layerUrls)
for (var
c = 0,
d = this.layerUrls.length;
c <
d; ++
c)
if (
OpenLayers.Util.isEquivalentUrl(
this.layerUrls[
c],
a)){
b = !0;
break}
return b}, buildWMSOptions:
function(
a,
b,
c,
d){
for (var
e = [],
f = [],
g = 0,
h =
b.length;
g <
h;
g++)
null !=
b[
g].params.LAYERS && (
e =
e.concat(
b[
g].params.LAYERS),
f =
f.concat(
this.getStyleNames(
b[
g])));
b =
b[0];
g = this.map.getProjection(); (
h =
b.projection) &&
h.equals(
this.map.getProjectionObject()) &&
1366 (
g =
h.getCode());
d =
OpenLayers.Util.extend({service:
"WMS",
version:
b.params.VERSION, request:
"GetFeatureInfo", exceptions:
b.params.EXCEPTIONS, bbox:this.map.getExtent().toBBOX(
null,
b.reverseAxisOrder()), feature_count:this.maxFeatures, height:this.map.getSize().h, width:this.map.getSize().w, format:
d, info_format:
b.params.INFO_FORMAT || this.infoFormat}, 1.3 <= parseFloat(
b.params.VERSION)?{crs:
g,
i:parseInt(
c.x),
j:parseInt(
c.y)}:{srs:
g,
x:parseInt(
c.x),
y:parseInt(
c.y)}); 0 !=
e.length && (
d =
OpenLayers.Util.extend({layers:
e,
1367 query_layers:
e, styles:
f},
d));
OpenLayers.Util.applyDefaults(
d, this.vendorParams);
return{url:
a, params:
OpenLayers.Util.upperCaseObject(
d), callback:
function(
b){this.handleResponse(
c,
b,
a)}, scope:
this}}, getStyleNames:
function(
a){
return a.params.STYLES?
a.params.STYLES:
OpenLayers.Util.isArray(
a.params.LAYERS)?
Array(
a.params.LAYERS.length):
a.params.LAYERS.replace(/[^,]/
g,
"")}, request:function(
a,
b){var
c = this.findLayers();
if (0 ==
c.length)this.events.triggerEvent(
"nogetfeatureinfo"),
OpenLayers.Element.removeClass(this.map.viewPortDiv,
1368 "olCursorWait");
else if (
b =
b || {}, !1 === this.drillDown){var
c = this.buildWMSOptions(this.url,
c,
a,
c[0].params.FORMAT),
d =
OpenLayers.Request.GET(
c); !0 ===
b.hover && (this.hoverRequest =
d)}
else{this._numRequests = this._requestCount = 0; this.features = [];
for (var
d = {},
e,
f = 0,
g =
c.length;
f <
g;
f++){var
h =
c[
f];
e =
OpenLayers.Util.isArray(
h.url)?
h.url[0]:
h.url;
e in
d?
d[
e].push(
h):(this._numRequests++,
d[
e] = [
h])}
for (
e in
d)
c =
d[
e],
c = this.buildWMSOptions(
e,
c,
a,
c[0].params.FORMAT),
OpenLayers.Request.GET(
c)}}, triggerGetFeatureInfo:
function(
a,
1369 b,
c){this.events.triggerEvent(
"getfeatureinfo", {text:
a.responseText, features:
c, request:
a, xy:
b});
OpenLayers.Element.removeClass(this.map.viewPortDiv,
"olCursorWait")}, handleResponse:
function(
a,
b,
c){var
d =
b.responseXML;
d &&
d.documentElement || (
d =
b.responseText);
d = this.format.read(
d); !1 === this.drillDown?this.triggerGetFeatureInfo(
b,
a,
d):(
this._requestCount++,
this._features =
"object" ===
this.output?(
this._features || []).concat({url:
c, features:
d}):(
this._features || []).concat(
d),
this._requestCount ===
this._numRequests &&
1370 (
this.triggerGetFeatureInfo(
b,
a,
this._features.concat()), delete
this._features, delete
this._requestCount, delete
this._numRequests))}, CLASS_NAME:
"OpenLayers.Control.WMSGetFeatureInfo"});
OpenLayers.Format.WMSCapabilities.v1_3_0 =
OpenLayers.Class(
OpenLayers.Format.WMSCapabilities.v1_3, {
version:
"1.3.0", CLASS_NAME:
"OpenLayers.Format.WMSCapabilities.v1_3_0"});
OpenLayers.Format.SOSGetFeatureOfInterest =
OpenLayers.Class(
OpenLayers.Format.XML, {VERSION:
"1.0.0", namespaces:{sos:
"http://www.opengis.net/sos/1.0", gml:
"http://www.opengis.net/gml", sa:
"http://www.opengis.net/sampling/1.0", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, schemaLocation:
"http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosAll.xsd", defaultPrefix:
"sos", regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, read:
function(
a){
"string" ==
1371 typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = {features:[]};
this.readNode(
a,
b);
a = [];
for (var
c = 0,
d =
b.features.length;
c <
d;
c++){var e = b.features[c]; this.internalProjection && (this.externalProjection && e.components[0]) && e.components[0].transform(this.externalProjection, this.internalProjection); e = new OpenLayers.Feature.Vector(e.components[0], e.attributes); a.push(e)}
return a}, readers:{sa:{SamplingPoint:
function(
a,
b){
if (!
b.attributes){var
c =
1372{attributes:{}};
b.features.push(
c);
b =
c}
b.attributes.id = this.getAttributeNS(
a, this.namespaces.gml,
"id"); this.readChildNodes(
a,
b)},
position:
function(
a,
b){this.readChildNodes(
a,
b)}}, gml:
OpenLayers.Util.applyDefaults({FeatureCollection:
function(
a,
b){this.readChildNodes(
a,
b)}, featureMember:
function(
a,
b){var
c = {attributes:{}};
b.features.push(
c); this.readChildNodes(
a,
c)}, name:
function(
a,
b){
b.attributes.name = this.getChildValue(
a)}, pos:
function(
a,
b){this.externalProjection || (this.externalProjection =
new OpenLayers.Projection(
a.getAttribute(
"srsName")));
1373 OpenLayers.Format.GML.v3.prototype.readers.gml.pos.apply(
this, [
a,
b])}},
OpenLayers.Format.GML.v3.prototype.readers.gml)}, writers:{sos:{GetFeatureOfInterest:
function(
a){
for (var
b = this.createElementNSPlus(
"GetFeatureOfInterest", {attributes:{
version:this.VERSION, service:
"SOS",
"xsi:schemaLocation":this.schemaLocation}}),
c = 0,
d =
a.fois.length;
c <
d;
c++)this.writeNode(
"FeatureOfInterestId", {foi:
a.fois[
c]},
b);
return b}, FeatureOfInterestId:
function(
a){
return this.createElementNSPlus(
"FeatureOfInterestId", {value:
a.foi})}}},
1374 CLASS_NAME:
"OpenLayers.Format.SOSGetFeatureOfInterest"});
OpenLayers.Format.SOSGetObservation =
OpenLayers.Class(
OpenLayers.Format.XML, {namespaces:{ows:
"http://www.opengis.net/ows", gml:
"http://www.opengis.net/gml", sos:
"http://www.opengis.net/sos/1.0", ogc:
"http://www.opengis.net/ogc", om:
"http://www.opengis.net/om/1.0", sa:
"http://www.opengis.net/sampling/1.0", xlink:
"http://www.w3.org/1999/xlink", xsi:
"http://www.w3.org/2001/XMLSchema-instance"}, regExes:{trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}, VERSION:
"1.0.0", schemaLocation:
"http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd",
1375 defaultPrefix:
"sos", read:
function(
a){
"string" == typeof a && (a = OpenLayers.Format.XML.prototype.read.apply(this, [a])); a && 9 == a.nodeType && (a = a.documentElement); var b = {measurements:[], observations:[]};
this.readNode(
a,
b);
return b}, write:
function(
a){
a = this.writeNode(
"sos:GetObservation",
a);
a.setAttribute(
"xmlns:om", this.namespaces.om);
a.setAttribute(
"xmlns:ogc", this.namespaces.ogc); this.setAttributeNS(
a, this.namespaces.xsi,
"xsi:schemaLocation",
this.schemaLocation);
return OpenLayers.Format.XML.prototype.write.apply(
this,
1376 [
a])}, readers:{om:{ObservationCollection:
function(
a,
b){
b.id = this.getAttributeNS(
a, this.namespaces.gml,
"id"); this.readChildNodes(
a,
b)}, member:
function(
a,
b){this.readChildNodes(
a,
b)}, Measurement:
function(
a,
b){var
c = {};
b.measurements.push(
c); this.readChildNodes(
a,
c)}, Observation:
function(
a,
b){var
c = {};
b.observations.push(
c); this.readChildNodes(
a,
c)}, samplingTime:
function(
a,
b){var
c = {};
b.samplingTime =
c; this.readChildNodes(
a,
c)}, observedProperty:
function(
a,
b){
b.observedProperty = this.getAttributeNS(
a, this.namespaces.xlink,
1377 "href"); this.readChildNodes(
a,
b)}, procedure:
function(
a,
b){
b.procedure = this.getAttributeNS(
a, this.namespaces.xlink,
"href"); this.readChildNodes(
a,
b)}, featureOfInterest:
function(
a,
b){var
c = {features:[]};
b.fois = [];
b.fois.push(
c); this.readChildNodes(
a,
c);
for (var
d = [],
e = 0,
f =
c.features.length;
e <
f;
e++){var
g =
c.features[
e];
d.push(
new OpenLayers.Feature.Vector(
g.components[0],
g.attributes))}
c.features =
d}, result:
function(
a,
b){var
c = {};
b.result =
c;
"" !== this.getChildValue(
a)?(
c.value = this.getChildValue(
a),
c.uom =
1378 a.getAttribute(
"uom")):
this.readChildNodes(
a,
c)}}, sa:
OpenLayers.
Format.SOSGetFeatureOfInterest.
prototype.readers.sa, gml:
OpenLayers.
Util.
applyDefaults({TimeInstant:
function(
a,
b){var
c = {};
b.timeInstant =
c; this.readChildNodes(
a,
c)}, timePosition:
function(
a,
b){
b.timePosition = this.getChildValue(
a)}},
OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.gml)}, writers:{sos:{GetObservation:
function(
a){var
b = this.createElementNSPlus(
"GetObservation", {attributes:{
version:this.VERSION, service:
"SOS"}}); this.writeNode(
"offering",
1379 a,
b);
a.eventTime && this.writeNode(
"eventTime",
a,
b);
for (var
c in
a.procedures)this.writeNode(
"procedure",
a.procedures[
c],
b);
for (var
d in
a.observedProperties)this.writeNode(
"observedProperty",
a.observedProperties[
d],
b);
a.foi && this.writeNode(
"featureOfInterest",
a.foi,
b); this.writeNode(
"responseFormat",
a,
b);
a.resultModel && this.writeNode(
"resultModel",
a,
b);
a.responseMode && this.writeNode(
"responseMode",
a,
b);
return b}, featureOfInterest:
function(
a){var
b = this.createElementNSPlus(
"featureOfInterest"); this.writeNode(
"ObjectID",
1380 a.objectId,
b);
return b}, ObjectID:
function(
a){
return this.createElementNSPlus(
"ObjectID", {value:
a})}, responseFormat:
function(
a){
return this.createElementNSPlus(
"responseFormat", {value:
a.responseFormat})}, procedure:
function(
a){
return this.createElementNSPlus(
"procedure", {value:
a})}, offering:
function(
a){
return this.createElementNSPlus(
"offering", {value:
a.offering})}, observedProperty:
function(
a){
return this.createElementNSPlus(
"observedProperty", {value:
a})}, eventTime:
function(
a){var
b = this.createElementNSPlus(
"eventTime");
1381 "latest" ===
a.eventTime && this.writeNode(
"ogc:TM_Equals",
a,
b);
return b}, resultModel:
function(
a){
return this.createElementNSPlus(
"resultModel", {value:
a.resultModel})}, responseMode:
function(
a){
return this.createElementNSPlus(
"responseMode", {value:
a.responseMode})}}, ogc:{TM_Equals:
function(
a){var
b = this.createElementNSPlus(
"ogc:TM_Equals"); this.writeNode(
"ogc:PropertyName", {property:
"urn:ogc:data:time:iso8601"},
b);
"latest" ===
a.eventTime && this.writeNode(
"gml:TimeInstant", {value:
"latest"},
b);
return b}, PropertyName:
function(
a){
return this.createElementNSPlus(
"ogc:PropertyName",
1382{value:
a.property})}}, gml:{TimeInstant:
function(
a){var
b = this.createElementNSPlus(
"gml:TimeInstant"); this.writeNode(
"gml:timePosition",
a,
b);
return b}, timePosition:
function(
a){
return this.createElementNSPlus(
"gml:timePosition", {value:
a.value})}}}, CLASS_NAME:
"OpenLayers.Format.SOSGetObservation"});
OpenLayers.Control.UTFGrid =
OpenLayers.Class(
OpenLayers.Control, {autoActivate:!0, layers:null, defaultHandlerOptions:{delay:300, pixelTolerance:4, stopMove:!1, single:!0,
"double":!1, stopSingle:!1, stopDouble:!1}, handlerMode:
"click", setHandler:
function(
a){this.handlerMode = a; this.resetHandler()}, resetHandler:
function(){this.handler && (this.handler.deactivate(), this.handler.destroy(), this.handler = null);
"hover" == this.handlerMode?this.handler = new OpenLayers.Handler.Hover(this, {pause:this.handleEvent, move:this.reset},
1383 this.handlerOptions):
"click" == this.handlerMode?this.handler =
new OpenLayers.Handler.Click(
this, {click:this.handleEvent}, this.handlerOptions):
"move" ==
this.handlerMode && (
this.handler = new
OpenLayers.
Handler.Hover(
this, {pause:this.handleEvent, move:this.handleEvent}, this.handlerOptions));
return this.handler?!0:!1}, initialize:
function(
a){
a =
a || {};
a.handlerOptions =
a.handlerOptions || this.defaultHandlerOptions;
OpenLayers.Control.prototype.initialize.apply(
this, [
a]); this.resetHandler()}, handleEvent:
function(
a){
if (
null ==
1384 a)this.
reset();
else{var
b = this.map.getLonLatFromPixel(
a.xy);
if (
b){var
c = this.findLayers();
if (0 <
c.length){
for (var
d = {},
e,
f,
g = 0,
h =
c.length;
g <
h;
g++)
e =
c[
g],
f =
OpenLayers.Util.indexOf(
this.map.layers,
e),
d[
f] =
e.getFeatureInfo(
b); this.callback(
d,
b,
a.xy)}}}}, callback:
function(
a){},
reset:
function(
a){this.callback(
null)}, findLayers:
function(){
for (var
a = this.layers || this.map.layers,
b = [],
c,
d =
a.length - 1; 0 <=
d; --
d)
c =
a[
d],
c instanceof
OpenLayers.Layer.UTFGrid &&
b.push(
c);
return b}, CLASS_NAME:
"OpenLayers.Control.UTFGrid"});
OpenLayers.Format.CQL =
function(){
function a(
a){
function b(){var
a =
e.pop();
switch (
a.type){
case "LOGICAL":var
c =
b(),
g =
b();
return new OpenLayers.Filter.Logical({filters:[
g,
c], type:
f[
a.text.toUpperCase()]});
case "NOT":
return a =
b(),
new OpenLayers.Filter.Logical({filters:[
a], type:
OpenLayers.Filter.Logical.NOT});
case "BETWEEN":
return e.pop(),
g =
b(),
a =
b(),
c =
b(),
new OpenLayers.Filter.Comparison({property:
c, lowerBoundary:
a, upperBoundary:
g, type:
OpenLayers.Filter.Comparison.BETWEEN});
case "COMPARISON":
return g =
1385 b(),
c =
b(),
new OpenLayers.Filter.Comparison({property:
c, value:
g, type:
d[
a.text.toUpperCase()]});
case "IS_NULL":
return c =
b(),
new OpenLayers.Filter.Comparison({property:
c, type:
d[
a.text.toUpperCase()]});
case "VALUE":
return(
c =
a.text.match(/^
'(.*)'$/))?
c[1].replace(/
''/
g,
"'"):
Number(
a.text);
case "SPATIAL":
switch (
a.text.toUpperCase()){
case "BBOX":var
a =
b(),
c =
b(),
g =
b(),
h =
b(),
k =
b();
return new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.BBOX, property:
k, value:
OpenLayers.Bounds.fromArray([
h,
g,
c,
1386a])});
case "INTERSECTS":
return g =
b(),
c =
b(),
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.INTERSECTS, property:
c, value:
g});
case "WITHIN":
return g =
b(),
c =
b(),
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.WITHIN, property:
c, value:
g});
case "CONTAINS":
return g =
b(),
c =
b(),
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.CONTAINS, property:
c, value:
g});
case "DWITHIN":
return a =
b(),
g =
b(),
c =
b(),
new OpenLayers.Filter.Spatial({type:
OpenLayers.Filter.Spatial.DWITHIN, value:
g,
1387 property:
c, distance:
Number(
a)})}
case "GEOMETRY":
return OpenLayers.Geometry.fromWKT(
a.text);
default:
return a.text}}
for (var
c = [],
e = [];
a.length; ){var
g =
a.shift();
switch (
g.type){
case "PROPERTY":
case "GEOMETRY":
case "VALUE":
e.push(
g);
break;
case "COMPARISON":
case "BETWEEN":
case "IS_NULL":
case "LOGICAL":
for (var
k =
h[
g.type]; 0 <
c.length &&
h[
c[
c.length - 1].type] <=
k; )
e.push(
c.pop());
c.push(
g);
break;
case "SPATIAL":
case "NOT":
case "LPAREN":
c.push(
g);
break;
case "RPAREN":
for (; 0 <
c.length &&
"LPAREN" !=
c[
c.length - 1].type; )
e.push(
c.pop());
1388 c.pop(); 0 <
c.length &&
"SPATIAL" ==
c[
c.length - 1].type &&
e.push(
c.pop());
case "COMMA":
case "END":
break;
default:
throw Error(
"Unknown token type " +
g.type); }}
for (; 0 <
c.length; )
e.push(
c.pop());
a =
b();
if (0 <
e.length){
a =
"Remaining tokens after building AST: \n";
for (
c =
e.length - 1; 0 <=
c;
c--)
a +=
e[
c].type +
": " +
e[
c].text +
"\n";
throw Error(
a); }
return a}var
b = {PROPERTY:/^[_a-zA-
Z]\
w*/, COMPARISON:/^(=|<>|<=|<|>=|>|
LIKE)/
i,
IS_NULL:/^IS NULL/
i, COMMA:/^,/, LOGICAL:/^(
AND|
OR)/
i, VALUE:/^(
'([^']|
'')*
'|\d+(\.\d*)?|\.\d+)/, LPAREN:/^\(/,
1389 RPAREN:/^\)/, SPATIAL:/^(BBOX|INTERSECTS|DWITHIN|WITHIN|CONTAINS)/i, NOT:/^NOT/i, BETWEEN:/^BETWEEN/i, GEOMETRY:function(a){var b = /^(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)/.exec(a); if (b){var c = a.length, b = a.indexOf("(", b[0].length); if ( - 1 < b)for (var d = 1; b < c && 0 < d; )switch (b++, a.charAt(b)){case "(":d++; break; case ")":d--}return[a.substr(0, b + 1)]}}, END:/^$/}, c = {LPAREN:["GEOMETRY", "SPATIAL", "PROPERTY", "VALUE", "LPAREN"], RPAREN:["NOT", "LOGICAL", "END", "RPAREN"], PROPERTY:["COMPARISON",
1390 "BETWEEN", "COMMA", "IS_NULL"], BETWEEN:["VALUE"], IS_NULL:["END"], COMPARISON:["VALUE"], COMMA:["GEOMETRY", "VALUE", "PROPERTY"], VALUE:["LOGICAL", "COMMA", "RPAREN", "END"], SPATIAL:["LPAREN"], LOGICAL:["NOT", "VALUE", "SPATIAL", "PROPERTY", "LPAREN"], NOT:["PROPERTY", "LPAREN"], GEOMETRY:["COMMA", "RPAREN"]}, d = {"=":OpenLayers.Filter.Comparison.EQUAL_TO, "<>":OpenLayers.Filter.Comparison.NOT_EQUAL_TO, "<":OpenLayers.Filter.Comparison.LESS_THAN, "<=":OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO, ">":OpenLayers.Filter.Comparison.GREATER_THAN,
1391 ">=":OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO, LIKE:OpenLayers.Filter.Comparison.LIKE, BETWEEN:OpenLayers.Filter.Comparison.BETWEEN, "IS NULL":OpenLayers.Filter.Comparison.IS_NULL}, e = {}, f = {AND:OpenLayers.Filter.Logical.AND, OR:OpenLayers.Filter.Logical.OR}, g = {}, h = {RPAREN:3, LOGICAL:2, COMPARISON:1}, k; for (k in d)d.hasOwnProperty(k) && (e[d[k]] = k); for (k in f)f.hasOwnProperty(k) && (g[f[k]] = k); return OpenLayers.Class(OpenLayers.Format, {read:function(d){var e = d; d = []; var f, g = ["NOT", "GEOMETRY", "SPATIAL",
1392 "PROPERTY", "LPAREN"]; do{a:{f = g; for (var h = void 0, g = void 0, k = f.length, h = 0; h < k; h++){var g = f[h], s = b[g]instanceof RegExp?b[g].exec(e):(0, b[g])(e); if (s){f = s[0]; e = e.substr(f.length).replace(/^\s*/, ""); f = {type:g, text:f, remainder:e}; break a}}d = "ERROR: In parsing: [" + e + "], expected one of: "; for (h = 0; h < k; h++)g = f[h], d += "\n " + g + ": " + b[g]; throw Error(d); }e = f.remainder; g = c[f.type]; if ("END" != f.type && !g)throw Error("No follows list for " + f.type); d.push(f)}while ("END" != f.type); d = a(d); this.keepData && (this.data = d);
1393 return d}, write:function(a){if (a instanceof OpenLayers.Geometry)return a.toString(); switch (a.CLASS_NAME){case "OpenLayers.Filter.Spatial":switch (a.type){case OpenLayers.Filter.Spatial.BBOX:return"BBOX(" + a.property + "," + a.value.toBBOX() + ")"; case OpenLayers.Filter.Spatial.DWITHIN:return"DWITHIN(" + a.property + ", " + this.write(a.value) + ", " + a.distance + ")"; case OpenLayers.Filter.Spatial.WITHIN:return"WITHIN(" + a.property + ", " + this.write(a.value) + ")"; case OpenLayers.Filter.Spatial.INTERSECTS:return"INTERSECTS(" +
1394 a.property + ", " + this.write(a.value) + ")"; case OpenLayers.Filter.Spatial.CONTAINS:return"CONTAINS(" + a.property + ", " + this.write(a.value) + ")"; default:throw Error("Unknown spatial filter type: " + a.type); }case "OpenLayers.Filter.Logical":if (a.type == OpenLayers.Filter.Logical.NOT)return"NOT (" + this.write(a.filters[0]) + ")"; for (var b = "(", c = !0, d = 0; d < a.filters.length; d++)c?c = !1:b += ") " + g[a.type] + " (", b += this.write(a.filters[d]); return b + ")"; case "OpenLayers.Filter.Comparison":return a.type == OpenLayers.Filter.Comparison.BETWEEN?
1395 a.property + " BETWEEN " + this.write(a.lowerBoundary) + " AND " + this.write(a.upperBoundary):null !== a.value?a.property + " " + e[a.type] + " " + this.write(a.value):a.property + " " + e[a.type]; case void 0:if ("string" === typeof a)return"'" + a.replace(/'/g, "''") + "'"; if ("number" === typeof a)return String(a); default:throw Error("Can't encode:
" + a.CLASS_NAME + " " + a); }}, CLASS_NAME:"OpenLayers.
Format.CQL
"})}(); OpenLayers.Control.Split = OpenLayers.Class(OpenLayers.Control, {layer:null, source:null, sourceOptions:null, tolerance:null, edge:!0, deferDelete:!1, mutual:!0, targetFilter:null, sourceFilter:null, handler:null, initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this, [a]); this.options = a || {}; this.options.source && this.setSource(this.options.source)}, setSource:function(a){this.active?(this.deactivate(), this.handler && (this.handler.destroy(), delete this.handler), this.source = a, this.activate()):this.source =
1396a}, activate:function(){var a = OpenLayers.Control.prototype.activate.call(this); if (a)if (!this.source)this.handler || (this.handler = new OpenLayers.Handler.Path(this, {done:function(a){this.onSketchComplete({feature:new OpenLayers.Feature.Vector(a)})}}, {layerOptions:this.sourceOptions})), this.handler.activate(); else if (this.source.events)this.source.events.on({sketchcomplete:this.onSketchComplete, afterfeaturemodified:this.afterFeatureModified, scope:this}); return a}, deactivate:function(){var a = OpenLayers.Control.prototype.deactivate.call(this);
1397 a && this.source && this.source.events && this.source.events.un({sketchcomplete:this.onSketchComplete, afterfeaturemodified:this.afterFeatureModified, scope:this}); return a}, onSketchComplete:function(a){this.feature = null; return!this.considerSplit(a.feature)}, afterFeatureModified:function(a){a.modified && "function
" === typeof a.feature.geometry.split && (this.feature = a.feature, this.considerSplit(a.feature))}, removeByGeometry:function(a, b){for (var c = 0, d = a.length; c < d; ++c)if (a[c].geometry === b){a.splice(c, 1); break}},
1398 isEligible:function(a){return a.geometry?a.state !== OpenLayers.State.DELETE && "function
" === typeof a.geometry.split && this.feature !== a && (!this.targetFilter || this.targetFilter.evaluate(a.attributes)):!1}, considerSplit:function(a){var b = !1, c = !1; if (!this.sourceFilter || this.sourceFilter.evaluate(a.attributes)){for (var d = this.layer && this.layer.features || [], e, f, g = [], h = [], k = this.layer === this.source && this.mutual, l = {edge:this.edge, tolerance:this.tolerance, mutual:k}, m = [a.geometry], n, p, q, r = 0, s = d.length; r < s; ++r)if (n =
1399 d[r], this.isEligible(n)){p = [n.geometry]; for (var t = 0; t < m.length; ++t){q = m[t]; for (var u = 0; u < p.length; ++u)if (e = p[u], q.getBounds().intersectsBounds(e.getBounds()) && (e = q.split(e, l)))f = this.events.triggerEvent("beforesplit
", {source:a, target:n}), !1 !== f && (k && (f = e[0], 1 < f.length && (f.unshift(t, 1), Array.prototype.splice.apply(m, f), t += f.length - 3), e = e[1]), 1 < e.length && (e.unshift(u, 1), Array.prototype.splice.apply(p, e), u += e.length - 3))}p && 1 < p.length && (this.geomsToFeatures(n, p), this.events.triggerEvent("split
", {original:n,
1400 features:p}), Array.prototype.push.apply(g, p), h.push(n), c = !0)}m && 1 < m.length && (this.geomsToFeatures(a, m), this.events.triggerEvent("split
", {original:a, features:m}), Array.prototype.push.apply(g, m), h.push(a), b = !0); if (b || c){if (this.deferDelete){d = []; r = 0; for (s = h.length; r < s; ++r)c = h[r], c.state === OpenLayers.State.INSERT?d.push(c):(c.state = OpenLayers.State.DELETE, this.layer.drawFeature(c)); this.layer.destroyFeatures(d, {silent:!0}); r = 0; for (s = g.length; r < s; ++r)g[r].state = OpenLayers.State.INSERT} else this.layer.destroyFeatures(h,
1401{silent:!0}); this.layer.addFeatures(g, {silent:!0}); this.events.triggerEvent("aftersplit
", {source:a, features:g})}}return b}, geomsToFeatures:function(a, b){var c = a.clone(); delete c.geometry; for (var d, e = 0, f = b.length; e < f; ++e)d = c.clone(), d.geometry = b[e], d.state = OpenLayers.State.INSERT, b[e] = d}, destroy:function(){this.active && this.deactivate(); OpenLayers.Control.prototype.destroy.call(this)}, CLASS_NAME:"OpenLayers.
Control.Split
"}); OpenLayers.Layer.WMTS = OpenLayers.Class(OpenLayers.Layer.Grid, {isBaseLayer:!0, version:"1.0.0
", requestEncoding:"KVP
", url:null, layer:null, matrixSet:null, style:null, format:"image/jpeg
", tileOrigin:null, tileFullExtent:null, formatSuffix:null, matrixIds:null, dimensions:null, params:null, zoomOffset:0, serverResolutions:null, formatSuffixMap:{"image/png
":"png
", "image/png8
":"png
", "image/png24
":"png
", "image/png32
":"png
", png:"png
", "image/jpeg
":"jpg
", "image/jpg
":"jpg
", jpeg:"jpg
", jpg:"jpg
"}, matrix:null, initialize:function(a){var b =
1402{url:!0, layer:!0, style:!0, matrixSet:!0}, c; for (c in b)if (!(c in a))throw Error("Missing property
'" + c + "' in layer configuration.
"); a.params = OpenLayers.Util.upperCaseObject(a.params); OpenLayers.Layer.Grid.prototype.initialize.apply(this, [a.name, a.url, a.params, a]); this.formatSuffix || (this.formatSuffix = this.formatSuffixMap[this.format] || this.format.split("/
").pop()); if (this.matrixIds && (a = this.matrixIds.length) && "string
" === typeof this.matrixIds[0])for (b = this.matrixIds, this.matrixIds = Array(a), c = 0; c < a; ++c)this.matrixIds[c] =
1403{identifier:b[c]}}, setMap:function(){OpenLayers.Layer.Grid.prototype.setMap.apply(this, arguments)}, updateMatrixProperties:function(){if (this.matrix = this.getMatrix())this.matrix.topLeftCorner && (this.tileOrigin = this.matrix.topLeftCorner), this.matrix.tileWidth && this.matrix.tileHeight && (this.tileSize = new OpenLayers.Size(this.matrix.tileWidth, this.matrix.tileHeight)), this.tileOrigin || (this.tileOrigin = new OpenLayers.LonLat(this.maxExtent.left, this.maxExtent.top)), this.tileFullExtent || (this.tileFullExtent =
1404 this.maxExtent)}, moveTo:function(a, b, c){!b && this.matrix || this.updateMatrixProperties(); return OpenLayers.Layer.Grid.prototype.moveTo.apply(this, arguments)}, clone:function(a){null == a && (a = new OpenLayers.Layer.WMTS(this.options)); return a = OpenLayers.Layer.Grid.prototype.clone.apply(this, [a])}, getIdentifier:function(){return this.getServerZoom()}, getMatrix:function(){var a; if (this.matrixIds && 0 !== this.matrixIds.length)if ("scaleDenominator
"in this.matrixIds[0])for (var b = OpenLayers.METERS_PER_INCH * OpenLayers.INCHES_PER_UNIT[this.units] *
1405 this.getServerResolution() / 2.8E-4, c = Number.POSITIVE_INFINITY, d, e = 0, f = this.matrixIds.length; e < f; ++e)d = Math.abs(1 - this.matrixIds[e].scaleDenominator / b), d < c && (c = d, a = this.matrixIds[e]); else a = this.matrixIds[this.getIdentifier()]; else a = {identifier:this.getIdentifier()}; return a}, getTileInfo:function(a){var b = this.getServerResolution(), c = (a.lon - this.tileOrigin.lon) / (b * this.tileSize.w); a = (this.tileOrigin.lat - a.lat) / (b * this.tileSize.h); var b = Math.floor(c), d = Math.floor(a); return{col:b, row:d, i:Math.floor((c -
1406 b) * this.tileSize.w), j:Math.floor((a - d) * this.tileSize.h)}}, getURL:function(a){a = this.adjustBounds(a); var b = ""; if (!this.tileFullExtent || this.tileFullExtent.intersectsBounds(a)){a = a.getCenterLonLat(); var c = this.getTileInfo(a); a = this.dimensions; var d, b = OpenLayers.Util.isArray(this.url)?this.selectUrl([this.version, this.style, this.matrixSet, this.matrix.identifier, c.row, c.col].join(), this.url):this.url; if ("REST
" === this.requestEncoding.toUpperCase())if (d = this.params, - 1 !== b.indexOf("{
")){b = b.replace(/\{/g,
1407 "${
"); c = {style:this.style, Style:this.style, TileMatrixSet:this.matrixSet, TileMatrix:this.matrix.identifier, TileRow:c.row, TileCol:c.col}; if (a){var e, f; for (f = a.length - 1; 0 <= f; --f)e = a[f], c[e] = d[e.toUpperCase()]}b = OpenLayers.String.format(b, c)} else{e = this.version + "/
" + this.layer + "/
" + this.style + "/
"; if (a)for (f = 0; f < a.length; f++)d[a[f]] && (e = e + d[a[f]] + "/
"); e = e + this.matrixSet + "/
" + this.matrix.identifier + "/
" + c.row + "/
" + c.col + ".
" + this.formatSuffix; b.match(/\/$/) || (b += "/
"); b += e} else"KVP
" === this.requestEncoding.toUpperCase() &&
1408 (d = {SERVICE:"WMTS
", REQUEST:"GetTile
", VERSION:this.version, LAYER:this.layer, STYLE:this.style, TILEMATRIXSET:this.matrixSet, TILEMATRIX:this.matrix.identifier, TILEROW:c.row, TILECOL:c.col, FORMAT:this.format}, b = OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this, [d]))}return b}, mergeNewParams:function(a){if ("KVP
" === this.requestEncoding.toUpperCase())return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this, [OpenLayers.Util.upperCaseObject(a)])}, CLASS_NAME:"OpenLayers.Layer.WMTS
"}); OpenLayers.Protocol.SOS.v1_0_0 = OpenLayers.Class(OpenLayers.Protocol, {fois:null, formatOptions:null, initialize:function(a){OpenLayers.Protocol.prototype.initialize.apply(this, [a]); a.format || (this.format = new OpenLayers.Format.SOSGetFeatureOfInterest(this.formatOptions))}, destroy:function(){this.options && !this.options.format && this.format.destroy(); this.format = null; OpenLayers.Protocol.prototype.destroy.apply(this)}, read:function(a){a = OpenLayers.Util.extend({}, a); OpenLayers.Util.applyDefaults(a, this.options ||
1409{}); var b = new OpenLayers.Protocol.Response({requestType:"read
"}), c = this.format, c = OpenLayers.Format.XML.prototype.write.apply(c, [c.writeNode("sos:GetFeatureOfInterest
", {fois:this.fois})]); b.priv = OpenLayers.Request.POST({url:a.url, callback:this.createCallback(this.handleRead, b, a), data:c}); return b}, handleRead:function(a, b){if (b.callback){var c = a.priv; 200 <= c.status && 300 > c.status?(a.features = this.parseFeatures(c), a.code = OpenLayers.Protocol.Response.SUCCESS):a.code = OpenLayers.Protocol.Response.FAILURE;
1410 b.callback.call(b.scope, a)}}, parseFeatures:function(a){var b = a.responseXML; b && b.documentElement || (b = a.responseText); return!b || 0 >= b.length?null:this.format.read(b)}, CLASS_NAME:"OpenLayers.Protocol.SOS.v1_0_0
"}); OpenLayers.Layer.KaMapCache = OpenLayers.Class(OpenLayers.Layer.KaMap, {IMAGE_EXTENSIONS:{jpeg:"jpg
", gif:"gif
", png:"png
", png8:"png
", png24:"png
", dithered:"png
"}, DEFAULT_FORMAT:"jpeg
", initialize:function(a, b, c, d){OpenLayers.Layer.KaMap.prototype.initialize.apply(this, arguments); this.extension = this.IMAGE_EXTENSIONS[this.params.i.toLowerCase() || this.DEFAULT_FORMAT]}, getURL:function(a){a = this.adjustBounds(a); var b = this.map.getResolution(), c = Math.round(1E4 * this.map.getScale()) / 1E4, d = Math.round(a.left / b); a =
1411 - Math.round(a.top / b); var b = Math.floor(d / this.tileSize.w / this.params.metaTileSize.w) * this.tileSize.w * this.params.metaTileSize.w, e = Math.floor(a / this.tileSize.h / this.params.metaTileSize.h) * this.tileSize.h * this.params.metaTileSize.h, c = ["/
", this.params.map, "/
", c, "/
", this.params.g.replace(/\s/g, "_"), "/def/
t", e, "/
l", b, "/
t", a, "l", d, ".
", this.extension], d = this.url; OpenLayers.Util.isArray(d) && (d = this.selectUrl(c.join(""), d)); return d + c.join("")}, CLASS_NAME:"OpenLayers.Layer.KaMapCache
"}); OpenLayers.Protocol.WFS.v1_1_0 = OpenLayers.Class(OpenLayers.Protocol.WFS.v1, {version:"1.1.0
", initialize:function(a){OpenLayers.Protocol.WFS.v1.prototype.initialize.apply(this, arguments); this.outputFormat && !this.readFormat && ("gml2
" == this.outputFormat.toLowerCase()?this.readFormat = new OpenLayers.Format.GML.v2({featureType:this.featureType, featureNS:this.featureNS, geometryName:this.geometryName}):"json
" == this.outputFormat.toLowerCase() && (this.readFormat = new OpenLayers.Format.GeoJSON))}, CLASS_NAME:"OpenLayers.Protocol.WFS.v1_1_0
"}); OpenLayers.Format.WMSCapabilities.v1_1_1 = OpenLayers.Class(OpenLayers.Format.WMSCapabilities.v1_1, {version:"1.1.1
", readers:{wms:OpenLayers.Util.applyDefaults({SRS:function(a, b){b.srs[this.getChildValue(a)] = !0}}, OpenLayers.Format.WMSCapabilities.v1_1.prototype.readers.wms)}, CLASS_NAME:"OpenLayers.Format.WMSCapabilities.v1_1_1
"}); OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC = OpenLayers.Class(OpenLayers.Format.WMSCapabilities.v1_1_1, {version:"1.1.1
", profile:"WMSC
", readers:{wms:OpenLayers.Util.applyDefaults({VendorSpecificCapabilities:function(a, b){b.vendorSpecific = {tileSets:[]}; this.readChildNodes(a, b.vendorSpecific)}, TileSet:function(a, b){var c = {srs:{}, bbox:{}, resolutions:[]}; this.readChildNodes(a, c); b.tileSets.push(c)}, Resolutions:function(a, b){for (var c = this.getChildValue(a).split(" "), d = 0, e = c.length; d < e; d++)"" != c[d] && b.resolutions.push(parseFloat(c[d]))},
1412 Width:function(a, b){b.width = parseInt(this.getChildValue(a))}, Height:function(a, b){b.height = parseInt(this.getChildValue(a))}, Layers:function(a, b){b.layers = this.getChildValue(a)}, Styles:function(a, b){b.styles = this.getChildValue(a)}}, OpenLayers.Format.WMSCapabilities.v1_1_1.prototype.readers.wms)}, CLASS_NAME:"OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC
"}); OpenLayers.Control.LayerSwitcher = OpenLayers.Class(OpenLayers.Control, {layerStates:null, layersDiv:null, baseLayersDiv:null, baseLayers:null, dataLbl:null, dataLayersDiv:null, dataLayers:null, minimizeDiv:null, maximizeDiv:null, ascending:!0, initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this, arguments); this.layerStates = []}, destroy:function(){this.clearLayersArray("base
"); this.clearLayersArray("data
"); this.map.events.un({buttonclick:this.onButtonClick, addlayer:this.redraw, changelayer:this.redraw,
1413 removelayer:this.redraw, changebaselayer:this.redraw, scope:this}); this.events.unregister("buttonclick", this, this.onButtonClick); OpenLayers.Control.prototype.destroy.apply(this, arguments)}, setMap:function(a){OpenLayers.Control.prototype.setMap.apply(this, arguments); this.map.events.on({addlayer:this.redraw, changelayer:this.redraw, removelayer:this.redraw, changebaselayer:this.redraw, scope:this}); this.outsideViewport?(this.events.attachToElement(this.div), this.events.register("buttonclick", this, this.onButtonClick)):
1414 this.map.events.register("buttonclick", this, this.onButtonClick)}, draw:function(){OpenLayers.Control.prototype.draw.apply(this); this.loadContents(); this.outsideViewport || this.minimizeControl(); this.redraw(); return this.div}, onButtonClick:function(a){a = a.buttonElement; a === this.minimizeDiv?this.minimizeControl():a === this.maximizeDiv?this.maximizeControl():a._layerSwitcher === this.id && (a["for"] && (a = document.getElementById(a["for"])), a.disabled || ("radio
" == a.type?(a.checked = !0, this.map.setBaseLayer(this.map.getLayer(a._layer))):
1415 (a.checked = !a.checked, this.updateMap())))}, clearLayersArray:function(a){this[a + "LayersDiv
"].innerHTML = ""; this[a + "Layers
"] = []}, checkRedraw:function(){if (!this.layerStates.length || this.map.layers.length != this.layerStates.length)return!0; for (var a = 0, b = this.layerStates.length; a < b; a++){var c = this.layerStates[a], d = this.map.layers[a]; if (c.name != d.name || c.inRange != d.inRange || c.id != d.id || c.visibility != d.visibility)return!0}return!1}, redraw:function(){if (!this.checkRedraw())return this.div; this.clearLayersArray("base
");
1416 this.clearLayersArray("data
"); var a = !1, b = !1, c = this.map.layers.length; this.layerStates = Array(c); for (var d = 0; d < c; d++){var e = this.map.layers[d]; this.layerStates[d] = {name:e.name, visibility:e.visibility, inRange:e.inRange, id:e.id}}var f = this.map.layers.slice(); this.ascending || f.reverse(); d = 0; for (c = f.length; d < c; d++){var e = f[d], g = e.isBaseLayer; if (e.displayInLayerSwitcher){g?b = !0:a = !0; var h = g?e == this.map.baseLayer:e.getVisibility(), k = document.createElement("input
"), l = OpenLayers.Util.createUniqueID(this.id +
1417 "_input_
"); k.id = l; k.name = g?this.id + "_baseLayers
":e.name; k.type = g?"radio
":"checkbox
"; k.value = e.name; k.checked = h; k.defaultChecked = h; k.className = "olButton
"; k._layer = e.id; k._layerSwitcher = this.id; g || e.inRange || (k.disabled = !0); h = document.createElement("label
"); h["for"] = k.id; OpenLayers.Element.addClass(h, "labelSpan olButton
"); h._layer = e.id; h._layerSwitcher = this.id; g || e.inRange || (h.style.color = "gray
"); h.innerHTML = e.name; h.style.verticalAlign = g?"bottom
":"baseline
"; l = document.createElement("br
"); (g?this.baseLayers:
1418 this.dataLayers).push({layer:e, inputElem:k, labelSpan:h}); e = g?this.baseLayersDiv:this.dataLayersDiv; e.appendChild(k); e.appendChild(h); e.appendChild(l)}}this.dataLbl.style.display = a?"":"none
"; this.baseLbl.style.display = b?"":"none
"; return this.div}, updateMap:function(){for (var a = 0, b = this.baseLayers.length; a < b; a++){var c = this.baseLayers[a]; c.inputElem.checked && this.map.setBaseLayer(c.layer, !1)}a = 0; for (b = this.dataLayers.length; a < b; a++)c = this.dataLayers[a], c.layer.setVisibility(c.inputElem.checked)}, maximizeControl:function(a){this.div.style.width =
1419 ""; this.div.style.height = ""; this.showControls(!1); null != a && OpenLayers.Event.stop(a)}, minimizeControl:function(a){this.div.style.width = "0px
"; this.div.style.height = "0px
"; this.showControls(!0); null != a && OpenLayers.Event.stop(a)}, showControls:function(a){this.maximizeDiv.style.display = a?"":"none
"; this.minimizeDiv.style.display = a?"none
":""; this.layersDiv.style.display = a?"none
":""}, loadContents:function(){this.layersDiv = document.createElement("div
"); this.layersDiv.id = this.id + "_layersDiv
"; OpenLayers.Element.addClass(this.layersDiv,
1420 "layersDiv
"); this.baseLbl = document.createElement("div
"); this.baseLbl.innerHTML = OpenLayers.i18n("Base Layer"); OpenLayers.Element.addClass(this.baseLbl, "baseLbl
"); this.baseLayersDiv = document.createElement("div
"); OpenLayers.Element.addClass(this.baseLayersDiv, "baseLayersDiv
"); this.dataLbl = document.createElement("div
"); this.dataLbl.innerHTML = OpenLayers.i18n("Overlays
"); OpenLayers.Element.addClass(this.dataLbl, "dataLbl
"); this.dataLayersDiv = document.createElement("div
"); OpenLayers.Element.addClass(this.dataLayersDiv,
1421 "dataLayersDiv
"); this.ascending?(this.layersDiv.appendChild(this.baseLbl), this.layersDiv.appendChild(this.baseLayersDiv), this.layersDiv.appendChild(this.dataLbl), this.layersDiv.appendChild(this.dataLayersDiv)):(this.layersDiv.appendChild(this.dataLbl), this.layersDiv.appendChild(this.dataLayersDiv), this.layersDiv.appendChild(this.baseLbl), this.layersDiv.appendChild(this.baseLayersDiv)); this.div.appendChild(this.layersDiv); var a = OpenLayers.Util.getImageLocation("layer-switcher-maximize.png
"); this.maximizeDiv =
1422 OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MaximizeDiv
", null, null, a, "absolute
"); OpenLayers.Element.addClass(this.maximizeDiv, "maximizeDiv olButton
"); this.maximizeDiv.style.display = "none
"; this.div.appendChild(this.maximizeDiv); a = OpenLayers.Util.getImageLocation("layer-switcher-minimize.png
"); this.minimizeDiv = OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MinimizeDiv
", null, null, a, "absolute
"); OpenLayers.Element.addClass(this.minimizeDiv, "minimizeDiv olButton
"); this.minimizeDiv.style.display =
1423 "none
"; this.div.appendChild(this.minimizeDiv)}, CLASS_NAME:"OpenLayers.Control.LayerSwitcher
"}); OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {namespaces:{atom:"http:
1424 for (var
c = 0,
d =
a.length;
c <
d;
c++)
b.appendChild(this.buildEntryNode(
a[
c]))}
else b = this.buildEntryNode(
a);
return OpenLayers.Format.XML.prototype.write.apply(
this, [
b])}, buildContentNode:
function(
a){var
b = this.createElementNSPlus(
"atom:content", {attributes:{type:
a.type ||
null}});
if (
a.src)
b.setAttribute(
"src",
a.src);
else if (
"text" ==
a.type ||
null ==
a.type)
b.appendChild(this.createTextNode(
a.value));
else if (
"html" ==
a.type){
if (
"string" != typeof
a.value)
throw"HTML content must be in form of an escaped string";
b.appendChild(this.createTextNode(
a.value))}
else"xhtml" ==
1425 a.type?
b.appendChild(
a.value):
"xhtml" ==
a.type ||
a.type.match(/(\+|\/)xml$/)?
b.appendChild(
a.value):
b.appendChild(this.createTextNode(
a.value));
return b}, buildEntryNode:
function(
a){var
b =
a.attributes,
c =
b.atom || {},
d = this.createElementNSPlus(
"atom:entry");
if (
c.authors)
for (var
e =
OpenLayers.Util.isArray(
c.authors)?
c.authors:[
c.authors],
f = 0,
g =
e.length;
f <
g;
f++)
d.appendChild(this.buildPersonConstructNode(
"author",
e[
f]));
if (
c.categories)
for (var
e =
OpenLayers.Util.isArray(
c.categories)?
c.categories:[
c.categories],
1426 h,
f = 0,
g =
e.length;
f <
g;
f++)
h =
e[
f],
d.appendChild(this.createElementNSPlus(
"atom:category", {attributes:{term:
h.term, scheme:
h.scheme ||
null, label:
h.label ||
null}}));
c.content &&
d.appendChild(this.buildContentNode(
c.content));
if (
c.contributors)
for (
e =
OpenLayers.Util.isArray(
c.contributors)?
c.contributors:[
c.contributors],
f = 0,
g =
e.length;
f <
g;
f++)
d.appendChild(this.buildPersonConstructNode(
"contributor",
e[
f]));
a.fid &&
d.appendChild(this.createElementNSPlus(
"atom:id", {value:
a.fid}));
if (
c.links)
for (
e =
OpenLayers.Util.isArray(
c.links)?
1427 c.links:[
c.links],
f = 0,
g =
e.length;
f <
g;
f++)
h =
e[
f],
d.appendChild(this.createElementNSPlus(
"atom:link", {attributes:{href:
h.href, rel:
h.rel ||
null, type:
h.type ||
null, hreflang:
h.hreflang ||
null, title:
h.title ||
null, length:
h.length ||
null}}));
c.published &&
d.appendChild(this.createElementNSPlus(
"atom:published", {value:
c.published}));
c.rights &&
d.appendChild(this.createElementNSPlus(
"atom:rights", {value:
c.rights})); (
c.summary ||
b.description) &&
d.appendChild(
this.createElementNSPlus(
"atom:summary", {value:c.summary ||
1428 b.description}));
d.appendChild(this.createElementNSPlus(
"atom:title", {value:
c.title ||
b.title || this.defaultEntryTitle}));
c.updated &&
d.appendChild(this.createElementNSPlus(
"atom:updated", {value:
c.updated}));
a.geometry && (
b = this.createElementNSPlus(
"georss:where"),
b.appendChild(this.buildGeometryNode(
a.geometry)),
d.appendChild(
b));
return d}, initGmlParser:
function(){this.gmlParser =
new OpenLayers.Format.GML.v3({xy:this.xy, featureNS:
"http://example.com#feature", internalProjection:this.internalProjection,
1429 externalProjection:this.externalProjection})}, buildGeometryNode:
function(
a){this.gmlParser || this.initGmlParser();
return this.gmlParser.writeNode(
"feature:_geometry",
a).firstChild}, buildPersonConstructNode:
function(
a,
b){var
c = [
"uri",
"email"],
d = this.createElementNSPlus(
"atom:" +
a);
d.appendChild(this.createElementNSPlus(
"atom:name", {value:
b.name}));
for (var
e = 0,
f =
c.length;
e <
f;
e++)
b[
c[
e]] &&
d.appendChild(this.createElementNSPlus(
"atom:" +
c[
e], {value:
b[
c[
e]]}));
return d}, getFirstChildValue:
function(
a,
b,
c,
1430 d){
return(
a = this.getElementsByTagNameNS(
a,
b,
c)) && 0 <
a.length?this.getChildValue(
a[0],
d):
d}, parseFeature:function(
a){var
b = {},
c =
null,
d =
null,
e =
null,
f = this.namespaces.atom; this.parsePersonConstructs(
a,
"author",
b);
d = this.getElementsByTagNameNS(
a,
f,
"category"); 0 <
d.length && (
b.categories = []);
for (var
g = 0,
h =
d.length;
g <
h;
g++){
c = {};
c.term =
d[
g].getAttribute(
"term");
if (
e =
d[
g].getAttribute(
"scheme"))
c.scheme =
e;
if (
e =
d[
g].getAttribute(
"label"))
c.label =
e;
b.categories.push(
c)}
d = this.getElementsByTagNameNS(
a,
f,
"content");
1431 if (0 <
d.length){
c = {};
if (
e =
d[0].getAttribute(
"type"))
c.type =
e; (
e =
d[0].getAttribute(
"src"))?
c.src =
e:(
"text" ==
c.type ||
"html" ==
c.type ||
null ==
c.type?
c.value = this.getFirstChildValue(
a,
f,
"content",
null):
"xhtml" ==
c.type ||
c.type.match(/(\+|\/)xml$/)?
c.value =
this.getChildEl(
d[0]):
c.value =
this.getFirstChildValue(
a,
f,
"content", null),
b.content =
c)}
this.parsePersonConstructs(
a,
"contributor",
b);
b.id = this.getFirstChildValue(
a,
f,
"id",
null);
d = this.getElementsByTagNameNS(
a,
f,
"link"); 0 <
d.length && (
b.links =
Array(
d.length));
1432 for (var
k = [
"rel",
"type",
"hreflang",
"title",
"length"],
g = 0,
h =
d.length;
g <
h;
g++){
c = {};
c.href =
d[
g].getAttribute(
"href");
for (var
l = 0,
m =
k.length;
l <
m;
l++)(
e =
d[
g].getAttribute(
k[
l])) && (
c[
k[
l]] =
e);
b.links[
g] =
c}
if (
c = this.getFirstChildValue(
a,
f,
"published",
null))
b.published =
c;
if (
c = this.getFirstChildValue(
a,
f,
"rights",
null))
b.rights =
c;
if (
c = this.getFirstChildValue(
a,
f,
"summary",
null))
b.summary =
c;
b.title = this.getFirstChildValue(
a,
f,
"title",
null);
b.updated = this.getFirstChildValue(
a,
f,
"updated",
null);
c = {title:
b.title,
1433 description:
b.summary, atom:
b};
a = this.parseLocations(
a)[0];
a =
new OpenLayers.Feature.Vector(
a,
c);
a.fid =
b.id;
return a}, parseFeatures:
function(
a){var
b = [],
c = this.getElementsByTagNameNS(
a, this.namespaces.atom,
"entry"); 0 ==
c.length && (
c = [
a]);
a = 0;
for (var
d =
c.length;
a <
d;
a++)
b.push(this.parseFeature(
c[
a]));
return b}, parseLocations:
function(
a){var
b = this.namespaces.georss,
c = {components:[]},
d = this.getElementsByTagNameNS(
a,
b,
"where");
if (
d && 0 <
d.length){this.gmlParser || this.initGmlParser();
for (var
e = 0,
f =
d.length;
e <
1434 f;
e++)this.gmlParser.readChildNodes(
d[
e],
c)}
c =
c.components;
if ((
d = this.getElementsByTagNameNS(
a,
b,
"point")) && 0 <
d.length)
for (
e = 0,
f =
d.length;
e <
f;
e++){var
g =
OpenLayers.String.trim(
d[
e].firstChild.nodeValue).split(/\
s+/); 2 !=
g.length && (
g =
OpenLayers.String.trim(
d[
e].firstChild.nodeValue).split(/\
s*,\
s*/));
c.push(
new OpenLayers.Geometry.Point(
g[1],
g[0]))}var
h = this.getElementsByTagNameNS(
a,
b,
"line");
if (
h && 0 <
h.length)
for (var
k,
e = 0,
f =
h.length;
e <
f;
e++){
d =
OpenLayers.String.trim(
h[
e].firstChild.nodeValue).split(/\
s+/);
1435 k = [];
for (var
l = 0,
m =
d.length;
l <
m;
l += 2)
g =
new OpenLayers.Geometry.Point(
d[
l + 1],
d[
l]),
k.push(
g);
c.push(
new OpenLayers.Geometry.LineString(
k))}
if ((
a = this.getElementsByTagNameNS(
a,
b,
"polygon")) && 0 <
a.length)
for (
e = 0,
f =
a.length;
e <
f;
e++){
d =
OpenLayers.String.trim(
a[
e].firstChild.nodeValue).split(/\
s+/);
k = [];
l = 0;
for (
m =
d.length;
l <
m;
l += 2)
g =
new OpenLayers.Geometry.Point(
d[
l + 1],
d[
l]),
k.push(
g);
c.push(
new OpenLayers.Geometry.Polygon([
new OpenLayers.Geometry.LinearRing(
k)]))}
if (this.internalProjection && this.externalProjection)
for (
e =
1436 0,
f =
c.length;
e <
f;
e++)
c[
e] &&
c[
e].transform(this.externalProjection, this.internalProjection);
return c}, parsePersonConstructs:
function(
a,
b,
c){var
d = [],
e = this.namespaces.atom;
a = this.getElementsByTagNameNS(
a,
e,
b);
for (var
f = [
"uri",
"email"],
g = 0,
h =
a.length;
g <
h;
g++){var
k = {};
k.name = this.getFirstChildValue(
a[
g],
e,
"name",
null);
for (var
l = 0,
m =
f.length;
l <
m;
l++){var
n = this.getFirstChildValue(
a[
g],
e,
f[
l],
null);
n && (
k[
f[
l]] =
n)}
d.push(
k)}0 <
d.length && (
c[
b +
"s"] =
d)}, CLASS_NAME:
"OpenLayers.Format.Atom"});
OpenLayers.Control.KeyboardDefaults =
OpenLayers.Class(
OpenLayers.Control, {autoActivate:!0, slideFactor:75, observeElement:null, draw:function(){this.handler =
new OpenLayers.Handler.Keyboard(
this, {keydown:this.defaultKeyPress}, {observeElement:this.observeElement ||
document})}, defaultKeyPress:
function(
a){var
b,
c = !0;
b =
OpenLayers.Event.element(
a);
if (!
b ||
"INPUT" !=
b.tagName &&
"TEXTAREA" !=
b.tagName &&
"SELECT" !=
b.tagName){
switch (
a.keyCode){
case OpenLayers.Event.KEY_LEFT:this.map.pan( - this.slideFactor, 0);
break;
case OpenLayers.Event.KEY_RIGHT:this.map.pan(this.slideFactor,
1437 0);
break;
case OpenLayers.Event.KEY_UP:this.map.pan(0, - this.slideFactor);
break;
case OpenLayers.Event.KEY_DOWN:this.map.pan(0, this.slideFactor);
break;
case 33:
b = this.map.getSize(); this.map.pan(0, - 0.75 *
b.h);
break;
case 34:
b = this.map.getSize(); this.map.pan(0, 0.75 *
b.h);
break;
case 35:
b = this.map.getSize(); this.map.pan(0.75 *
b.w, 0);
break;
case 36:
b = this.map.getSize(); this.map.pan( - 0.75 *
b.w, 0);
break;
case 43:
case 61:
case 187:
case 107:this.map.zoomIn();
break;
case 45:
case 109:
case 189:
case 95:this.map.zoomOut();
1438 break;
default:
c = !1}
c &&
OpenLayers.Event.stop(
a)}}, CLASS_NAME:
"OpenLayers.Control.KeyboardDefaults"});
OpenLayers.Format.WMTSCapabilities.v1_0_0 =
OpenLayers.Class(
OpenLayers.Format.OWSCommon.v1_1_0, {
version:
"1.0.0",
namespaces:{ows:
"http://www.opengis.net/ows/1.1", wmts:
"http://www.opengis.net/wmts/1.0", xlink:
"http://www.w3.org/1999/xlink"}, yx:
null, defaultPrefix:
"wmts", initialize:
function(
a){
OpenLayers.Format.XML.prototype.initialize.apply(
this, [
a]); this.options =
a;
a =
OpenLayers.Util.extend({},
OpenLayers.Format.WMTSCapabilities.prototype.yx); this.yx =
OpenLayers.Util.extend(
a, this.yx)}, read:
function(
a){
"string" ==
1439 typeof
a && (
a =
OpenLayers.Format.XML.prototype.read.apply(
this, [
a]));
a && 9 ==
a.nodeType && (
a =
a.documentElement); var
b = {}; this.readNode(
a,
b);
b.version = this.
version;
return b}, readers:{wmts:{Capabilities:
function(
a,
b){this.readChildNodes(
a,
b)}, Contents:
function(
a,
b){
b.contents = {};
b.contents.layers = [];
b.contents.tileMatrixSets = {}; this.readChildNodes(
a,
b.contents)},
Layer:
function(
a,
b){var
c = {styles:[], formats:[], dimensions:[], tileMatrixSetLinks:[], layers:[]}; this.readChildNodes(
a,
c);
b.layers.push(
c)},
Style:
function(
a,
1440 b){var
c = {};
c.isDefault =
"true" ===
a.getAttribute(
"isDefault"); this.readChildNodes(
a,
c);
b.styles.push(
c)},
Format:
function(
a,
b){
b.formats.push(this.getChildValue(
a))}, TileMatrixSetLink:
function(
a,
b){var
c = {}; this.readChildNodes(
a,
c);
b.tileMatrixSetLinks.push(
c)}, TileMatrixSet:
function(
a,
b){
if (
b.layers){var
c = {matrixIds:[]}; this.readChildNodes(
a,
c);
b.tileMatrixSets[
c.identifier] =
c}
else b.tileMatrixSet = this.getChildValue(
a)}, TileMatrix:
function(
a,
b){var
c = {supportedCRS:
b.supportedCRS}; this.readChildNodes(
a,
1441 c);
b.matrixIds.push(
c)}, ScaleDenominator:
function(
a,
b){
b.scaleDenominator = parseFloat(this.getChildValue(
a))}, TopLeftCorner:
function(
a,
b){var
c = this.getChildValue(
a).split(
" "),
d;
b.supportedCRS && (
d =
b.supportedCRS.replace(/urn:ogc:def:crs:(\
w+):.+:(\
w+)
$/,
"urn:ogc:def:crs:$1::$2"),
d = !!this.yx[
d]);
b.topLeftCorner =
d?
new OpenLayers.LonLat(
c[1],
c[0]):
new OpenLayers.LonLat(
c[0],
c[1])}, TileWidth:
function(
a,
b){
b.tileWidth = parseInt(this.getChildValue(
a))}, TileHeight:
function(
a,
b){
b.tileHeight = parseInt(this.getChildValue(
a))},
1442 MatrixWidth:
function(
a,
b){
b.matrixWidth = parseInt(this.getChildValue(
a))}, MatrixHeight:
function(
a,
b){
b.matrixHeight = parseInt(this.getChildValue(
a))}, ResourceURL:
function(
a,
b){
b.resourceUrl =
b.resourceUrl || {}; var
c =
a.getAttribute(
"resourceType");
b.resourceUrls || (
b.resourceUrls = []);
c =
b.resourceUrl[
c] = {format:
a.getAttribute(
"format"),
template:
a.getAttribute(
"template"), resourceType:
c};
b.resourceUrls.push(
c)}, WSDL:
function(
a,
b){
b.wsdl = {};
b.wsdl.href =
a.getAttribute(
"xlink:href")}, ServiceMetadataURL:
function(
a,
1443 b){
b.serviceMetadataUrl = {};
b.serviceMetadataUrl.href =
a.getAttribute(
"xlink:href")}, LegendURL:
function(
a,
b){
b.legend = {};
b.legend.href =
a.getAttribute(
"xlink:href");
b.legend.format =
a.getAttribute(
"format")}, Dimension:
function(
a,
b){var
c = {values:[]}; this.readChildNodes(
a,
c);
b.dimensions.push(
c)}, Default:
function(
a,
b){
b[
"default"] = this.getChildValue(
a)}, Value:
function(
a,
b){
b.values.push(this.getChildValue(
a))}}, ows:
OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers.ows}, CLASS_NAME:
"OpenLayers.Format.WMTSCapabilities.v1_0_0"});
OpenLayers Protocol Response SUCCESS
OpenLayers Filter Comparison IS_NULL
OpenLayers Filter Spatial WITHIN
OpenLayers Format OWSCommon v1_0_0
OpenLayers Format CSWGetRecords DEFAULTS
OpenLayers Format GML Base
OpenLayers Util getImageLocation
OpenLayers Handler MOD_SHIFT
OpenLayers Geometry Point
OpenLayers Format XML lookupNamespaceURI
OpenLayers Filter Spatial CONTAINS
OpenLayers Format Filter v1_1_0
OpenLayers Geometry MultiLineString
OpenLayers Filter Spatial INTERSECTS
OpenLayers Projection transform
OpenLayers Filter Logical OR
OpenLayers Style SYMBOLIZER_PREFIXES
OpenLayers Protocol Response
OpenLayers Filter Spatial BBOX
OpenLayers Util removeItem
OpenLayers Filter Comparison LIKE
OpenLayers Geometry Collection
OpenLayers Filter Logical AND
var OpenLayers
Contains XMLHttpRequest.js http://code.google.com/p/xmlhttprequest/ Copyright 2007 Sergey Ilinsky (ht...
OpenLayers Filter FeatureId
OpenLayers Layer Google cache
OpenLayers Util applyDefaults
OpenLayers Filter Spatial
OpenLayers Format OWSCommon
OpenLayers Feature Vector style
OpenLayers Events buttonclick
OpenLayers Feature Vector
OpenLayers Filter Spatial DWITHIN
OpenLayers Layer Google v2
OpenLayers Protocol Response FAILURE
OpenLayers Geometry LinearRing
OpenLayers Control TYPE_TOOL
OpenLayers Format XML document
OpenLayers Geometry Curve
OpenLayers Geometry Polygon
OpenLayers Format WFST v1
OpenLayers Geometry MultiPoint
OpenLayers Geometry LineString
OpenLayers Util modifyAlphaImageDiv
OpenLayers Geometry MultiPolygon
function dd(element, settings)
for(i in testElementStyle)
THREE Animation prototype stop
THREE Triangle containsPoint
THREE Camera prototype clone
THREE Curve prototype getLength
THREE SkinnedMesh prototype bind
THREE JSONLoader prototype parse
THREE CurvePath prototype createGeometry
THREE Animation prototype reset
THREE Animation prototype play
THREE Path prototype moveTo
THREE CurvePath prototype add
THREE JSONLoader prototype load
THREE Skeleton prototype update